Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.06.2010, 17:28   #1
Veleri92
 
Регистрация: 17.05.2010
Сообщений: 6
По умолчанию Найти ошибку, в файле. Паскаль.

Задача: Объявить какой-либо заранее созданный файл как нетипизированный и вывести
все нечетные удвоенные слова (одно удвоенное слово равно четырем байтам) из
этого файла на экран монитора.
Проблема в том что постоянно пишет что не равно 4 байтам(
Сама задача
Изображения
Тип файла: bmp Безымянный.bmp (617.0 Кб, 115 просмотров)
Veleri92 вне форума Ответить с цитированием
Старый 02.06.2010, 18:25   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

1)
sizeof(переменная) возвращает размер переменной, который она занимает в памяти.
если переменная var s : string;
то sizeof(s) будет равен 256 (для переменной s в памяти компьютера компилятор TurboPascal выделил ровно 256 байт.

2) текст программы надо скопировать и вставить в сообщение. Не забыв отформатировать его с помощью тега [СODE] - кнопочка с решёточкой ( # )
по вашей картинке код программы набирать — себя не уважать.. проще уж с нуля написать!

3) смысл Вашей задачи, мне лично, например, абсолютно непонятен.. Какие удвоенные слова, почему они нечётные, какого типа должен быть файл, который Вы открыли, вообще непонятно.. Ну, видимо, я основы программирования плохо знаю
Serge_Bliznykov вне форума Ответить с цитированием
Старый 02.06.2010, 19:51   #3
Veleri92
 
Регистрация: 17.05.2010
Сообщений: 6
По умолчанию

а каким типом нужно объявить переменную s? что получить нормальный ответ?
Veleri92 вне форума Ответить с цитированием
Старый 02.06.2010, 19:56   #4
Veleri92
 
Регистрация: 17.05.2010
Сообщений: 6
По умолчанию

Код:
program pr;
var
f:text;
slovo:string;
i:integer;
Begin
i:=0;
ASSIGN(f,'D:\BB.txt');
reset(f);
while not(Eof(F)) do
begin
Inc(i);
Readln(F,slovo);
if (i mod 2<>0) then begin
if sizeof(slovo)=4 then
writeln(slovo)
else writeln('<>4');
end;
end;
close(f);
readln;
end.

Последний раз редактировалось Veleri92; 02.06.2010 в 20:00.
Veleri92 вне форума Ответить с цитированием
Старый 02.06.2010, 20:07   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
а каким типом нужно объявить переменную s? что получить нормальный ответ?
Вы перечитайте в моём сообщении пункт 3)

повторю.
я не понимаю, что у Вас есть и что Вам нужно получить в результате...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 02.06.2010, 20:35   #6
Veleri92
 
Регистрация: 17.05.2010
Сообщений: 6
По умолчанию

Дан текстовый файл, на ПК. Нужно что б програма прочитала этот файл, потом посчитала размер каждого нечетного слова( тоесть 2, 3, 5...) и если размер совпадет с 4 байтам еще раз отдельно выписать это слово. Вот, если честно до меня только не доходит какую процедуру или функцию можно использовать для того что бы посчитать размер данного слова.(
Veleri92 вне форума Ответить с цитированием
Старый 02.06.2010, 21:43   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

вот теперь ясно.
обычно размер слов считают в символах (они же буквы)
Два вопроса наводящих...
1) В файле одна строчка или может быть много?
Если много - то отсчёт слов (чётные/нечётные) продолжается на следующую строчку или каждая строчка - счёт слов начинается с единицы?
2) что является разделителем слов? (поясню - это могут быть только пробелы, а могут быть настоящие разделители (кроме пробелов, это и знаки препинания, и скобки и прочая..)
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
найти ошибку в массиве, паскаль bingooo Помощь студентам 2 09.04.2010 19:12
Помогите найти ошибку. Паскаль Паскалька^^ Помощь студентам 6 02.12.2009 16:52
помогите найти ошибку - паскаль ai\ekcah^p Помощь студентам 2 11.05.2009 17:32
Найти ошибку в задаче на ПАскаль Анжелика Помощь студентам 3 16.01.2009 00:55
Паскаль, не могу найти ошибку в программе Julinja Помощь студентам 2 17.11.2008 20:42