ЕГЭ. С-4. Pascal
Добавлено: 13 май 2009, 16:51
В заданиях С-4 ЕГЭ по информатике данные на вход подаются в виде "входного потока". Этот входной поток стоит принимать оператором read(либо readln).
Внимание, вопросы:
1. Как иммитировать этот входной поток для самопроверки выполненных заданий(не хочется, например, вводить 365 строк по формату dd.mm +/-t).
2. {не совсем по теме}Какой бесплатный (ну или с лекарством-сами понимаете, но это лучше а приват
) компилятор Pascal порекомендуете использовать на машине Windows Vista x64 (x32 не могу поставить по техническим причинам)? Сейчас использую учебный компилятор PascalABC, который, к сожелению, не способен создавать exe файлы.
Пример задания С-4:
На вход программы подается 366 строк, которые содержат информацию о среднесуточной температуре всех дней 2008 года. Формат каждой из строк следующий: сначала записана дата в виде dd.mm (на запись номера дня и номера месяца в числовом формате отводится строго два символа, день от месяца отделен точкой), затем через пробел записано значение температуры — число со знаком плюс или минус, с точностью до 1 цифры после десятичной точки. Данная информация отсортирована по значению температуры, то есть хронологический порядок нарушен. Требуется написать программу на языке Паскаль или Бейсик, которая будет выводить на экран информацию о месяце (месяцах), среднемесячная температура у которого (которых) наименее отклоняется от среднегодовой. В первой строке вывести среднегодовую температуру. Найденные значения для каждого из месяцев следует выводить в отдельной строке в виде: номер месяца, значение среднемесячной температуры, отклонение от среднегодовой температуры.
--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------
3. И еще детский вопросик(просто программирование в школе не изучал и многово не знаю(я имел ввиду почти ничего
)):
Вот я хочу копировать подстроку функцией copy, я заведомо знаю, что данная подстрока содержит число. ммм лучше не буду объяснять, а покажу на примере:
Вопрос номер 3 снимаю. Решение нашел сам:
Вопрос номер 4:
как заполнить одномерный массив, не используя цикл. в учебниках по pascal даются примеры заполнения только циклом.
мне надо заполнить некий массив из 12-ти элементов.(в частности это кол-во дней в каждом месяце года)
Внимание, вопросы:
1. Как иммитировать этот входной поток для самопроверки выполненных заданий(не хочется, например, вводить 365 строк по формату dd.mm +/-t).
2. {не совсем по теме}Какой бесплатный (ну или с лекарством-сами понимаете, но это лучше а приват

Пример задания С-4:
На вход программы подается 366 строк, которые содержат информацию о среднесуточной температуре всех дней 2008 года. Формат каждой из строк следующий: сначала записана дата в виде dd.mm (на запись номера дня и номера месяца в числовом формате отводится строго два символа, день от месяца отделен точкой), затем через пробел записано значение температуры — число со знаком плюс или минус, с точностью до 1 цифры после десятичной точки. Данная информация отсортирована по значению температуры, то есть хронологический порядок нарушен. Требуется написать программу на языке Паскаль или Бейсик, которая будет выводить на экран информацию о месяце (месяцах), среднемесячная температура у которого (которых) наименее отклоняется от среднегодовой. В первой строке вывести среднегодовую температуру. Найденные значения для каждого из месяцев следует выводить в отдельной строке в виде: номер месяца, значение среднемесячной температуры, отклонение от среднегодовой температуры.
--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------
3. И еще детский вопросик(просто программирование в школе не изучал и многово не знаю(я имел ввиду почти ничего

Вот я хочу копировать подстроку функцией copy, я заведомо знаю, что данная подстрока содержит число. ммм лучше не буду объяснять, а покажу на примере:
Код: Выделить всё
var
stroka:string[7];
podstroka:string[4];
c:real;
begin
stroka:='a32.3bc';
podstroka:=copy(stroka,2,4);
{вот тут выражение, предающее переменной [I]с[/I] значение переменной [I]podstroka[/I](обратите внимание, что [I]c[/I] имеет тип real)}
end.
Вопрос номер 3 снимаю. Решение нашел сам:
Код: Выделить всё
var
stroka:string[7];
podstroka:string[4];
c:real;
[color="Red"]p:integer;[/color]
begin
stroka:='a32.3bc';
podstroka:=copy(stroka,2,4);
[color="#ff0000"]val(podstroka, c, p);{в переменную [I]c[/I] записалось число 32.3, а в переменную [I]p[/I]- цифра 0}[/color]
end.
как заполнить одномерный массив, не используя цикл. в учебниках по pascal даются примеры заполнения только циклом.
мне надо заполнить некий массив из 12-ти элементов.(в частности это кол-во дней в каждом месяце года)