Хелпикс

Главная

Контакты

Случайная статья





for i:=1 to N do. if Info[i].sum <= min3 then. writeln(Info[i].name);. var name: array[1..MAX] of string;. sum: array[1..MAX] of integer;



end;

{ вывод результата }

for i:=1 to N do

 if Info[i].sum <= min3 then

 writeln(Info[i].name);

end.

19) эту задачу можно решить и без записей, используя два массива: массив символьных строк name и массив целых чисел sum, они объявляются так:

var name: array[1..MAX] of string;

sum: array[1..MAX] of integer;

после этого в приведенной программе нужно заменить везде Info[i].name на name и Info[i].sum на sum.

На что обратить внимание: · в исходных данных выделите то, что не нужно для решения задачи; при чтении эти части можно просто пропускать; · если нам не нужны фамилия и имя отдельно, можно хранить их вместе, в виде одной строки · если нас интересует только сумма оценок, не нужно хранить их в памяти по отдельности · если можно при решении задачи обойтись без вещественных чисел, сделав все вычисления только с целыми числами – нужно поступить именно так (иначе снимут баллы), поскольку операции с вещественными числами во многих случаях случаев выполняются неточно · алгоритм сложности  (например, сортировку) нужно использовать только тогда, когда нет алгоритма сложности ; как правило, в задачах ЕГЭ такой алгоритм всегда можно (попытаться) найти; за неэффективный алгоритм при оценке решения будут сняты баллы

 

За что снимают баллы: · программа работает не для всех исходных данных, не обрабатывает некоторые частные случаи · неверно реализован алгоритм поиска минимального элемента, сортировки и т.п. · неэффективность алгоритма: o используется алгоритм, имеющий сложность , когда есть алгоритм сложности o используется несколько проходов по массиву, когда достаточно одного o лишний расход памяти ( используются дополнительные массивы или размер массива определен неверно) o используются операции с вещественными числами, когда можно все решить в целых числах · переменная не описана или описана неверно · переменным не присвоены нужные начальные значения (например, не обнуляются счетчики) или присвоены неверные значения · нет вывода результата в конце программы · перепутаны знаки < и >, логические операции or и and · применяется недопустимая операция, например, div или mod для вещественных чисел · неверно расставлены операторные скобки begin-end · в цикле for используется вещественная переменная (Паскаль) · в цикле while или repeat не изменяется переменная цикла, из-за чего происходит зацикливание · синтаксические ошибки (знаки пунктуации – запятые, точки, точки с запятой; неверное написание ключевых слов); чтобы получить 4 балла, при абсолютно верном решении нужно сделать не более одной синтаксической ошибки; на 3 балла – до трех ошибок, на 2 балла – до пяти и на 1 балл – до семи ошибок

Задачи для тренировки[2]:

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

 

2) На вход программы подается содержится текст на английском языке, заканчивающийся точкой (другие символы “.” в тексте отсутствуют). Требуется написать программу, которая будет определять и выводить на экран английскую букву, встречающуюся в этом тексте чаще всего, и количество там таких букв. Строчные и прописные буквы при этом считаются не различимыми. Если искомых букв несколько, то программа должна выводить на экран первую из них по алфавиту. Например, пусть файл содержит следующую запись:
 It is not a simple task. Yes!
Чаще всего здесь встречаются буквы I, S и T(слово Yes в подсчете не учитывается, так как расположено после точки). Следовательно, в данном случае программа должна вывести два символа, разделенных пробелом: I 3

 

3) На вход программы подаются произвольные алфавитно-цифровые символы. Ввод этих символов заканчивается точкой. Требуется написать программу, которая будет печатать последовательность строчных английских букв ('a' 'b'... 'z') из входной последовательности и частот их повторения. Печать должна происходить в алфавитном порядке. Например, пусть на вход подаются следующие символы:



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.