Суббота, 30.11.2024, 08:11
Главная Регистрация Вход
Приветствую Вас, Гость · RSS
Меню сайта
Статистика
Конкурс!
конкурс сайтов
 Решения С4 (ЕГЭ)
Готовимся к ЕГЭ по информатике.

Для успешного решения задачи С4 необходимым минимумом является:

  • понимание структуры программы,
  • работа с различными типами данных,
  • ввод-вывод данных
  • работа с условными операторами
  • написание циклов с условиями и с параметрами
  • написание вложенных циклов

все эти знания используются в других частях единого экзамена, но помимо этих минимальных требований, есть и более специфичные.

Работа со строками:

Необходимые знания

Синтаксис в языке Pascal

определение длины строки

n:= length(str);

получение отдельного символа по его номеру в строке

ch := str[10]; {выделяем десятый символ в строке}

получение кода символа по его коду

code:=ord(ch);

получение символа по коду

ch:=ctr(code);

поиск подстроки в строку

pos(‘ ‘,str); {поиск первого пробела в строке}

выделение подстроки в строке

name:=copy(str,1,10); {выделяем первые пять символов в строке и сохраняем их в строковой переменной phone}

удаление части строки

delete(str,1,10) ; {удаляем первые десять символов в строке. Это – оператор.}

перевод строки в число val()

val(str,i,err); {значение строки str преобразовывается в числовое и записывается в переменную i, err- номер ошибочного символа, в случае успеха равен нулю}

Работа с массивами:

Необходимые знания

синтаксис в языке Pascal

описание и формирование массива

var m: array[1..99] of integer;

поиск значения по заданному критерию

for i:=1 to n do
if (m[i]=k) then
begin
num := I;
break;
end;

{запомнили индекс элемента массива с заданным значением k}

поиск минимального элемента в массиве

min := m[1];
num_min:=1;
for i:=2 to n do
if(m[i] < min) then
begin
min := m[i];
num_min:=i;
end;

обмен элементами массива

z:=m[1];
m[1]:=m[10];
m[10]:=z;

{элементы массива с индексами 1 и 10 поменялись местами}

сортировка массива

for i:=2 to n_qwest do
for j:=1 to i do
if m[i] > m[j] then
begin
z := m[j];
m[j] := m[i];
m[i] := z;
end;

Работа с записями:

Необходимые знания

синтаксис в языке Pascal

описание записей

type student = record
name: string[20];
class: integer;
end;
var
r: student;
mas:array[1..1000] of student;

формирование новой записи

r.name := ‘abc’;
r.class := 11;

формирование массива записей

все тоже самое, но в цикле

. . .
mas[i].name := ‘abc’;
mas[i].class := 11;
. . .

Большинство задач так или иначе использует все из перечисленных знаний!

 

Задачи С4 с решениями.


№1. С4 из Демо-версии 2013 года

На вход программе подаются сведения о пассажирах, желающих сдать свой багаж в камеру хранения на заранее известное время до полуночи. В первой строке сообщается число пассажиров N, которое не меньше 3, но не превосходит 1000; во второй строке – количество ячеек в камере хранения K, которое не меньше 10, но не превосходит 1000. Каждая из следующих N
строк имеет следующий формат: <Фамилия> <время сдачи багажа> <время освобождения ячейки>, где <Фамилия> – строка, состоящая не более чем из 20 непробельных
символов; <время сдачи багажа> – через двоеточие два целых числа, соответствующие часам (от 00 до 23 – ровно 2 символа) и минутам (от 00 до 59 – ровно 2 символа); <время освобождения ячейки> имеет тот же формат. <Фамилия> и <время сдачи багажа>, а также <время сдачи багажа> и <время освобождения ячейки> разделены одним пробелом. Время освобождения
больше времени сдачи. Сведения отсортированы в порядке времени сдачи багажа. Каждому из пассажиров в камере хранения выделяется свободная ячейка с минимальным
номером. Если в момент сдачи багажа свободных ячеек нет, то пассажир уходит, не дожидаясь освобождения одной из них. Требуется написать программу (укажите используемую версию языка
программирования, например Borland Pascal 7.0), которая будет выводить на экран для каждого пассажира номер ему предоставленной ячейки (можно сразу после ввода данных очередного пассажира). Если ячейка пассажиру не предоставлена, то его фамилия не печатается.

Пример входных данных:
3
10
Иванов 09:45 12:00
Петров 10:00 11:00
Сидоров 12:00 13:12

Результат работы программы на этих входных данных:
Иванов 1
Петров 2
Сидоров 1

Решение

№2.

На вход программе подаётся текст заклинания, состоящего не более чем из 200 символов, заканчивающийся точкой (символ «точка» во входных данных единственный). Оно было зашифровано Гарри Поттером следующим образом. Сначала Гарри определил количество букв в самом длинном слове, обозначив полученное число К (словом называется непрерывная последовательность английских букв, слова друг от друга отделяются любыми другими символами, длина слова не превышает 20 символов). Затем он заменил каждую английскую букву в заклинании на букву, стоящую в алфавите на К букв ранее (алфавит считается циклическим, то есть перед буквой А стоит буква Z), оставив другие символы неизменными. Строчные буквы при этом остались строчными, а прописные - прописными. Требуется написать как можно более эффективную программу (укажите используемую версию языка программирования, например, Borland Pascal 7.0), которая будет выводить на экран текст расшифрованного заклинания. Например, если зашифрованный текст был таким:


Zb Ra Ca,Dab Rа.


то результат расшифровки должен быть следующим:
Се Ud Pd,Gde Ud.

Решение

№3. 

На вход программе подаются сведения о сдаче экзаменов учениками 9-х классов некоторой средней школы. В первой строке сообщается количество учеников N, которое не меньше 10, но не превосходит 100, каждая из следующих N строк имеет следующий формат: <Фамилия> <Имя> <оценки>, где <Фамилия> - строка, состоящая не более чем из 20 символов, <Имя> — строка, состоящая не более чем из 15 символов, <оценки> - через пробел три целых числа, соответствующие оценкам по пятибалльной системе. <Фамилия> и <Имя>, а также <Имя> и <оценки> разделены одним пробелом. Пример входной строки:
Иванов Петр 4 2 4


Требуется написать как можно более эффективную программу (укажите используемую версию языка программирования, например, Borland Pascal 7.0), которая будет выводить на экран фамилии и имена неуспевающих учеников (имеющих по результатам экзаменов хотя бы одну двойку), располагая их в порядке уменьшения числа двоек.

Решение

 

Copyright MyCorp © 2024
ИКТ 2014
Архив записей
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Бесплатный хостинг uCoz