|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
30.11.2007, 21:17 | #11 |
Пользователь
Регистрация: 29.11.2007
Сообщений: 32
|
пишет что операторы не соответствует операции в стоке if S[i] in S1 then ...
Последний раз редактировалось Dianochka; 30.11.2007 в 21:25. |
30.11.2007, 23:22 | #12 |
Участник клуба
Регистрация: 26.10.2007
Сообщений: 1,244
|
Можно сделать так.... Остаются только цифры.
Код:
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым, Попытка глубже понимать уже попахивает литром... |
01.12.2007, 08:54 | #13 |
Старожил
Регистрация: 13.10.2007
Сообщений: 2,740
|
Извиняюсь за неточность, спутал строку с множеством.
В приведенном выше коде строчка const s_2 = '1234567890'; ненужна. |
01.12.2007, 14:08 | #14 |
Пользователь
Регистрация: 29.11.2007
Сообщений: 32
|
Вообще полный текст моей задачи: Дан текстовой файл, в котором встречаются буквы и цифры. Выбрать все числа (число может быть образовано несколькими идущими подряд цифрами) и подсчитать среднее арифметическое этих чисел.
Моя проблема: как отобрать отдельные цифры я поняла, а если будет число 17 или 876? И когда я нахожу среднее арифм. то при делении у меня получается несоответствие типов integer и string. Кстати и еще вопрос: Что значит посчитать сколько в файле правильных идентификаторов? я даж не знаю что эт такое.. Последний раз редактировалось Dianochka; 01.12.2007 в 14:13. |
01.12.2007, 15:06 | #15 |
Старожил
Регистрация: 13.10.2007
Сообщений: 2,740
|
Правильный идентификатор это набор подряд идущих символов, включающий в себя латинские буквы, арабские цифры и знак подчеркивания (_). Например vyvod_mass2. Короче зто имена констант, переменных, типов, процедур и т.д.
Для того, чтобы посчитать среднее арифметическое, знаки чисел из строки преобразовать из типа String в тип Integer или Real. Среднее арифметическое обязательно Real. В Паскале и Делфи это делается по разному, не знаю в чем ты пишешь. А задача твоя становится все интересней. Оказывается нужны не отдельные знаки, а подстроки, причем отдельно числа и отдельно наборы знаков, соответствующие правильным идентификаторам. И еще. Если ты не знаешь, что такое идентификатор, как ты пишешь код? Наверное нужно почитать какой-нибудь учебник. |
01.12.2007, 15:15 | #16 |
Пользователь
Регистрация: 29.11.2007
Сообщений: 32
|
Я пишу в Паскале. Про идентификаторы это уже другая задача и я на 1 курсе поэтому и незнаю что такое, а прогу сделать надо и это никого не волнует из преподов.
Я знаю что нужно преобразовать тип из string в real. но как? в этом и вопрос! и кстати как выбрать правильные идентификаторы из строки? |
01.12.2007, 19:06 | #17 |
Участник клуба
Регистрация: 26.10.2007
Сообщений: 1,244
|
Миенно... я просто забыл убрать эту строку при переделки старого кода.
Многие музыканты незнают нот, но прекрасно играют на гитаре )) Я тоже мало знаю терминологию, но пишу )) Задачка запарная.. надо подумать..
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым, Попытка глубже понимать уже попахивает литром... |
01.12.2007, 19:22 | #18 |
Старожил
Регистрация: 13.10.2007
Сообщений: 2,740
|
В файле все знаки идут подряд или в виде слов, т.е. разделены пробелами? Такой же вопрс по второй задаче.
|
01.12.2007, 19:34 | #19 |
Пользователь
Регистрация: 29.11.2007
Сообщений: 32
|
они идут вперемешку с пробелами, т.е. произвольный набор символов где могут встречаться пробелы. В обоих задачах.
|
02.12.2007, 19:21 | #20 |
Пользователь
Регистрация: 29.11.2007
Сообщений: 32
|
Вот мой код для 1 задачи, но он выдает неправильный ответ, уже все перепробовала. Может кто-нить увидит где ошибка.. :
uses crt; var f:text; s,s2,t:string; s1:array[1..100] of string; i,j,n,d,k:integer; e:real; begin clrscr; assign(f,'fox.txt'); reset(f); while not eof(f) do begin read(f,s); end; k:=1; s2:='1234567890'; for i:=1 to length(s) do begin for j:=1 to length(s2) do if (s[i]=s2[j]) and (s[i+1]<>s2[j]) then begin t:=s1[k]+s[i]; n:=n+1; d:=d+(ord('t')-ord('0')); k:=k+1; end else s1[k]:=s1[k]+s[i]; end; e:=d/n; writeln ('e= ',e:2:3); readln; close(f); end. |
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Моя первая и последняя игра. | BangBangFM | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 13 | 05.12.2008 22:12 |
Последняя статья. | R-SER | Свободное общение | 10 | 25.11.2007 20:38 |
Как проверть, есть ли в числе запятая? | Look | Общие вопросы C/C++ | 5 | 06.11.2007 21:27 |