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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.12.2011, 19:45   #1
Rinat777
 
Регистрация: 12.12.2011
Сообщений: 5
По умолчанию работа с файлами

Даны следующие описания переменных:
var f:file of integer;
x,y:integer;
Пусть файл f содержит два элемента - 3 и 7.Определить, какое значение будет иметь переменная y после выполнения следующих операторов:
a) reset(f);
read(f,y);
if not eof(f) then read(f,y);
if not eof(f) then read(f,y);
б) reset(f);
y:=0;
while not eof(f) do
begin
read(f,y);
y:=y + x
end;
в) reset(f);
y:=1;
repeat
read(f,y);
y:=y * x
until eof(f)
Rinat777 вне форума Ответить с цитированием
Старый 12.12.2011, 20:24   #2
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,882
По умолчанию

Могу наврать, не проверяю сверхвысокоточно
Для всех примеров должно быть выполнено условие связан ли файл с файловой переменной F.
а) должно быть 7
б) если код выполняется в локальной области видимости, то У не определено, ибо Х не инициализирован, если же глобальная то 10
в) аналогично насчет локального, а глобально - У будет 0

А вообще примеры в и б не скомпилируются, потому что нет точки с запятой в предпоследних строках

Последний раз редактировалось phomm; 12.12.2011 в 20:26.
phomm вне форума Ответить с цитированием
Старый 13.12.2011, 10:04   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

phomm +1

а вообще, я думаю, что в примерах б) и в)
должно быть read(f,x);
это делает код более-менее осмысленным!
и ответы тогда будут 10 и 21 соответственно.


Цитата:
Сообщение от phomm
вообще примеры в и б не скомпилируются, потому что нет точки с запятой в предпоследних строках
а вот тут позвольте с Вами не согласиться. В данном случае будет прекрасно компилироваться и без неё!

Последний раз редактировалось Serge_Bliznykov; 13.12.2011 в 10:07.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 13.12.2011, 21:19   #4
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,882
По умолчанию

Кошмар действительно, скомпилируется
Я знал конечно что перед end можно не ставить т/з, но не знал про перед until (пример б просто под одну гребенку попал с в, я не удосужился вникнуть).
Я опускаю т/з только если 1 строка в бегин-энд (обычно методы/подпрограммы) и, думаю, лучше ставить везде (кроме перед else, и описанного мной случая подпрограмм или методов) дабы не вводить в заблуждение
phomm вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с файлами Senator16 C++ Builder 7 15.01.2011 12:43
Си. Работа с файлами. _Varyag_ Помощь студентам 3 14.01.2011 17:53
Работа с файлами Kazik Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 18.05.2010 11:12
Работа с файлами Скрунж Паскаль, Turbo Pascal, PascalABC.NET 1 18.10.2008 15:19
Работа с файлами Smith777 Помощь студентам 4 23.02.2008 05:08