Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Readln(N);. { ввод исходных данных }




{ ввод исходных данных }

for i:=1 to N do begin

Info[i].name := '';

for k:=1 to 2 do

Repeat

Read(c);

Info[i].name := Info[i].name + c;

until c = ' ';

Info[i].sum := 0;

for k:=1 to 3 do begin

Read(mark);

Info[i].sum := Info[i].sum + mark;

End;

Readln;

End;

{ поиск трех минимальных }

min1 := 20; min2 := 20; min3 := 20;

for i:=1 to N do begin

if Info[i].sum <min1 then begin

min3 := min2; min2 := min1;

min1 := Info[i].sum;

End

else if Info[i].sum <min2 then begin

min3 := min2;

min2 := Info[i].sum;

End

else if Info[i].sum <min3 then

min3 := Info[i].sum;

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') из входной последовательности и частот их повторения. Печать должна происходить в алфавитном порядке. Например, пусть на вход подаются следующие символы:


.

mylektsii.ru - Мои Лекции - 2015-2019 год. (0.005 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал