Страница 1 из 1

ЕГЭ. С-4. Pascal

Добавлено: 13 май 2009, 16:51
Лаций
В заданиях С-4 ЕГЭ по информатике данные на вход подаются в виде "входного потока". Этот входной поток стоит принимать оператором read(либо readln).
Внимание, вопросы:
1. Как иммитировать этот входной поток для самопроверки выполненных заданий(не хочется, например, вводить 365 строк по формату dd.mm +/-t).
2. {не совсем по теме}Какой бесплатный (ну или с лекарством-сами понимаете, но это лучше а приват :p ) компилятор Pascal порекомендуете использовать на машине Windows Vista x64 (x32 не могу поставить по техническим причинам)? Сейчас использую учебный компилятор PascalABC, который, к сожелению, не способен создавать exe файлы.

Пример задания С-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.
Вопрос номер 4:
как заполнить одномерный массив, не используя цикл. в учебниках по pascal даются примеры заполнения только циклом.
мне надо заполнить некий массив из 12-ти элементов.(в частности это кол-во дней в каждом месяце года)

Re: ЕГЭ. С-4. Pascal

Добавлено: 15 май 2009, 02:58
dr.Jekill
!Замечание! ОДИН ВОПРОС - ОДНА ТЕМА!1. Через случайный выбор (создать файл через random и считывать с него);2. У меня на висте нормально работает TPascal 7.1

Re: ЕГЭ. С-4. Pascal

Добавлено: 15 май 2009, 22:34
Лаций
dr.Jekill, спасибо за ответ. Замечания учту

Re: ЕГЭ. С-4. Pascal

Добавлено: 19 май 2009, 02:33
dr.Jekill
Насчет четвертого: тогда у тебя каждый элемент массива из 12 элементов должен быть типа месяц от 1 до 31 элементов. А заполнять можно вручную, но легче через цикл (для того они и придуманны).

Re: ЕГЭ. С-4. Pascal

Добавлено: 20 май 2009, 14:59
Лаций
dr.Jekill, я имел ввиду как это оформить. как ни пытаюсь компилятор ругается.

Re: ЕГЭ. С-4. Pascal

Добавлено: 25 май 2009, 09:12
ЛуЛу
При подготовке мы решали эту задачку.
4) Массив заполняли в разделе описания констант ручками (число дней же не меняется, и никаких запарок далее)

Re: ЕГЭ. С-4. Pascal

Добавлено: 26 май 2009, 05:00
Oleg_Rus
Согласен с Лулу. Если я не ошибаюсь массив можно задать сразу как некую константу с готовым содержанием.