Вариант №1
На вход IijwipaMMe подаются сведения об участниках автопробега ретро — автомобилей. В первой строке сообщается количество участников Л’, каждая из следующих NСтрок имеет формат: <Фамилия владельца><Год выпуска автомобиля><Номер региона>, где <Фамилия владельца >— строка, состоящая не более чем из 20 символов, <Год выпуска автомобиля >— четырёхзначное число, <Номер региона >— не более чем двузначное число. <Фамилия владельца>и <Год выпуска автомобиля >, а также <Год выпуска автомобиля >и <Номер региона >разделены одним пробелом. Пример входной строки:
Соловьёв 1957 61
Требуется написать как можно более эффективную программу, которая будет выводить на экран информацию, из какого региона было меньше всего участников (таких регионов может быть несколько). При этом необходимо вывести информацию только по тем регионам, из которых прибыл хотя бы один участник. Следует учитывать, что /V ≥ 1000.
Вариант №2
В городе M был проведен мониторинг цен по трём видам продуктовых товаров: сахару, муке и гречневой крупе в различных магазинах.
Напишите эффективную по времени работы и по используемой памяти программу, которая будет определять для каждого из отобранных видов продуктовых товаров, сколько магазинов продают его дешевле всего. На вход программе сначала подаётся число данных о стоимости продукта. В каждой из следующих N строк находится информация в формате: <Название магазинах Улица><Название продукта><Цена>, где <Название магазина >— строка, состоящая не более чем из 20 символов без пробелов; <Улица >— строка, состоящая не более чем из 20 символов без пробелов; <Название продукта >— одно из слов: сахар, мука, крупа; <Цена> — целое число в диапазоне от 1000 до 5000. обозначающее стоимость одного килограмма продукта в копейках. <Название магазн - Iia >и <Улица >, <Улица >и <Название продуктам а также <Название продукта>и < I Iena >разделены ровно одним пробелом. Пример входной строки:
Тавр Будённовский мука 1384
Про! рамма должна выводить через пробел 3 числа — количество магазинов, продающих дешевле всего сахар, муку и гречневую крупу соответственно. Если какой-либо из товаров нигде нс продавался, то следует вывести 0.
Пример выходных данных:
35 12 24
Вариант №3
На вход программе подаются сведения о сдаче экзаменов учениками 9-х классов некоторой средней школы. В первой строке сообщается количество учеников Л’. каждая из следующих NСтрок имеет формат: <Фамилия ><Имя><оценки >. где <Фамилия>— строка, состоящая не более чем из 20 символов. <Имя> — строка, состоящая не более чем из 15 символов. <оценки>— через пробел три целых числа, соответствующих оценкам по пятибалльной системе. <Фамилия >и <Имя>, а также <Имя> и <оценки >разделены одним пробелом. I! ример входной строки: Иванов Сергей 4 5 4
Требуется написать программу, которая будет выводить на экран фамилии и имена учеников, средний балл которых не менее общего среднего балла. Требуемые имена и фамилии можно выводить в произвольном порядке.
Вариант №4
На вход программе подаются 365 строк, которые содержат информацию о среднесуточной температуре всех дней 2009 года в городе Ростове- на-Дону. Формат каждой строки следующий: сначала записана дата в виде dd.ιππι. затем через пробел записано значение температуры — целое число (возможно со знаком минус). Информация отсортирована по значению температуры Пример входной строки:
15.02-1
Требуется написать как можно более эффективную программу, которая будет выводить па экран информацию о трёх самых жарких и трёх самых холодных месяцах 2009 года. Найденные значения следует выводить н отдельной строке для каждого месяца, упорядоченные по убыванию температуры. в виде: номер месяца н значение среднемесячной температуры через пробел. Предполагается, что все значения среднемесячных температур попарно различны
Вариант №5
На вход программе подаются сведения о результатах олимпиады по информатике. В первой строке сообщается количество участников А’. каждая из следующих Arстрок имеет формат: <Фамилия ><Номер школы ><Баллы >, где <Фамилия >— строка, состоящая не более чем из 20 символов, <Номер школы >— не более чем двузначный номер, <Баллы >— количество набранных баллов (целое число в диапазоне от 0 до 100). Все элементы одной строки отделены друг от друга одним пробелом. Пример входной строки:
Иванов 23 58
Требуется написать как можно более эффективную программу, которая будет выводить на экран в порядке возрастания номеров школ список, каждая строка которого содержит номер школы и максимальный набранный балл участниками олимпиады из этой школы. Номера школ из которых не было участников не выводятся.
Вариант №6
На вход программе подаются сведения о багаже пассажиров некоторого авиарейса. В первой строке сообщается количество пассажиров JV, каждая из следующих NСтрок имеет формат: <Фамилия ><количество вещей ><вес>, где <Фамилия >— строка, состоящая не более, чем из 20 символов, <количество вещей >— число вещей в багаже. <вес> — общий вес багажа в килограммах. Все элементы одной строки отделены друг от друга одним пробелом Пример входной строки:
Иванов 3 18.2
Требуется написать как можно более эффективную программу, которая будет выводить на экран список пассажиров, средний вес одной вещи багажа которых отличается не более чем на 0,5 кг от общего среднего веса одной вещи.
Вступительные испытания в некоторый вуз состоят из трёх экзаменов: математика (максимальный балл — IOk информатика (максимальный балл — 10), литература (максимальный балл — 5). На вход программе подаются сведения о сдаче этих экзаменов абитуриентами. В первой строке вводится количество абитуриентов Л, во второй — количество мест К (К < N), на которые эти абитуриенты претендуют. Каждая из следующих NСтрок имеет формат: <Фамилия><оценка I ><оцен- ка2><оценкаЗ>, где <Фамилия>— строка, состоящая не более чем из 20 символов,
Иванов 89 3
Петров 200
Требуется написать программу, которая определяла бы по имеющимся данным количество абитуриентов, набравших проходной балл в данный вуз. (Проходным называется такой балл, набрав который, абитуриент, при отсутствии неудовлетворительных оценок, попадает в К лучших, которые должны быть зачислены на 1 курс) Считается, что абитуриенты, получившие только удовлетворительные оценки, обязательно присутствуют.
Вариант №8
На вход программе подаётся натуральное число. V. Необходимо указать количество различных слов длиной N,Состоящих только из символов открывающих и закрывающих скобок, в которых скобки расставлены в соответствии с общепринятыми в математике правилами. (Под словом в данном случае понимается произвольная последовательность символов.)
Вариант №9
-V человек покупают билеты и трёх кассах. Известно время, затрачиваемое на обслуживание каждого человека. Распределите людей в 3 очереди так. чтобы общее время, потраченное на покупку билетов, было наименьшим.
На вход протрамме в первой строке подаётся натуральное число N — Количество человек. Затем каждая из NСледующих строк имеет формат: <Фамилия >— строка, состоящая не более чем из 20 символов, <время >— натуральное число, представляющее собой время в минутах. <Фамилия >и <время >разделены одним пробелом. На выходе программы выводится общее время, потраченное на покупку билетов, и сформированные очереди в каждую из трёх касс последовательно друг за другом.
Вариант №10
При проведении маркетинговых исследований в книжном магазине каждому изданию согласно рейтингу продаж присваивалось от 0 до 100 баллов. Для определения самых популярных изданий сначала из них отбираются 55%, с наиболее высоким рейтингом. В случае. когда у издания, входящего в 55% оказывается количество баллов такое же. как и у следующих за ним в итоговой таблице, решение по данному изданию и всем изданиям, имеющим с ним равное количество баллов, определяется следующим образом: все издания считаются популярными, если набранные ими баллы больше четверти максимально возможных; издания не признаются популярными, если набранные ими баллы не превышают 3/4 от максимально возможных.
Напишите эффективную по времени работы и по используемой памяти программу, которая по результатам маркетинговых исследований будет определять, какой минимальный балл нужно было набрать, чтобы стать издание могло войти в число наиболее популярных.
На вход программе сначала подаётся количество изданий, отобранных для исследования. В каждой из следующих NСтрок находится результат одного из изданий в формате: <Фамилия автора ><Код книги><Год издания ><Баллы >, где <Фамилия автора>— строка, состоящая не более чем из 25 символов, <Код книги >— строка, состоящая не более чем из
10 символов, <Год издания >— число от 1900 до 2010, <баллы>— целое число от 0 до 100 набранных изданием баллов. <Фамилия автора >. <Код книги >, <Год издания >и <Баллы> разделены одним пробелом. Пример входной строки:
Бунин Б2341 1999 60
I! рограмма должна выводить минимальный балл издания. Гарантируется, что хотя бы одно издание по указанным правилам определить можно.
№ вар. |
№ задания |
|||||||
I |
2 |
3 |
4 |
5 |
6 I 7 |
8 |
||
I |
2 |
2 |
2 |
3 |
IlOOl(X) |
30 |
3 |
2,3,6 |
2 |
3 |
3 |
1 |
2 |
HOllO |
19 |
4 |
3.5,15 |
3 |
3 |
4 |
4 |
2 |
731 |
342 |
3 |
9 |
4 |
1 |
3 |
1 |
3 |
351 |
572 |
7 |
5,10,20 |
5 |
1 |
3 |
1 |
2 |
2 |
1000 |
4 |
3 |
6 |
4 |
3 |
2 |
3 |
3 |
IOlll |
5 |
4 |
7 |
2 |
3 |
1 |
3 |
40 |
13 |
31 |
6 |
8 |
3 |
3 |
1 |
4 |
118 |
79 |
7,21 |
5 |
9 |
3 |
2 |
4 |
2 274 |
1IOOOOl |
5 |
7.15,23 |
|
IO |
1 |
3 |
3 |
3 |
407 |
10 |
8 |
18 |
§ 2. Информация и её кодирование
№ |
Л2 задания |
|||||||
Вар. |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
I |
4 |
4 |
4 |
3 |
733 |
6 |
64 |
120 |
2 |
3 |
4 |
2 |
1 |
3AAD7 |
4 |
128 |
1200 |
3 |
3 |
1 |
3 |
1 |
261 |
600 |
4 |
81.92 |
4 |
1 |
2 |
2 |
1 |
394 |
400 |
3 |
0.32 |
5 |
2 |
2 |
3 |
3 |
ЛВ89 |
341 |
4 |
11520 |
6 |
2 |
3 |
3 |
2 |
DBCA |
93 |
729 |
307200 |
7 |
4 |
3 |
2 |
3 |
Ul |
1440 |
1024 |
3600 |
8 |
3 |
4 |
2 |
3 |
173 |
130 |
25 |
185 |
9 |
1 |
2 |
4 |
4 |
CADB |
180 |
15 |
2.5 |
IO |
I |
3 |
3 |
I |
BCEAD |
135 |
28 |
64 |
§ 3 Обработка и хранение информации
№ вар. |
№ задания |
||||
I |
2 |
3 |
4 |
5 |
|
1 |
4 |
14 |
1 |
2 |
4 |
2 |
4 |
2 |
3 |
3 |
2 |
3 |
2 |
11 |
2 |
2 |
4 |
4 |
3 |
12 |
3 |
3 |
4 |
5 |
2 |
2 |
1 |
4 |
2 |
6 |
3 |
7 |
2 |
3 |
3 |
7 |
3 |
35 |
-2 |
1 |
4 |
8 |
3 |
16 |
4 |
2 |
2 |
9 |
1 |
3 |
-4 |
3 |
1 |
IO |
2 |
6 |
-7 |
4 |
3 |
№ вар. |
Ks Задания |
|||||
1 |
2 |
3 |
4 |
5 |
6 |
|
1 |
3 |
3 |
4 |
3 |
ГЖЕБАВД |
3124 |
2 |
2 |
1 |
3 |
1 |
ГВЕДБА |
4312 |
3 |
4 |
2 |
А -3: Б — 1; В-2 |
4 |
ВАДЕЖБГ |
2314 |
4 |
1 |
4 |
А-2; Б — 3; B-I |
3 |
ДАЖБЕГВ |
3214 |
5 |
4 |
2 |
2 |
1 |
ВГАБ |
3142 |
6 |
3 |
3 |
3 |
3 |
ВАГБ |
2314 |
7 |
1 |
2 |
3 |
3 |
БАГВ |
4123 |
8 |
2 |
1 |
4 |
2 |
2341 |
3214 |
9 |
4 |
1 |
4 |
1 |
ЕЖАДГВБЗ |
BCAD |
10 |
3 |
4 |
3 |
2 |
ВДБАЕГ |
CBDA |
Nt вар. |
Ns задания |
|||||
I |
2 |
3 |
4 |
5 |
6 |
|
I |
2 |
4 |
1 |
2 |
14 |
Лл |
2 |
2 |
1 |
1 |
3 |
30 |
ЛР |
3 |
2 |
1 |
2 |
2 |
-1 |
C |
4 |
3 |
4 |
4 |
3 |
7 |
КНПФ |
5 |
2 |
4 |
1 |
4 |
Olll
|
Чв |
6 |
1 |
2 |
4 |
4 |
1001 |
БС |
7 |
2 |
1 |
4 |
2 |
6 |
СДПА |
8 |
3 |
1 |
2 |
1 |
-2 |
ММВВЛЛББ |
9 |
1 |
3 |
4 |
3 |
-4 |
АГМР |
IO |
2 |
2 |
1 |
4 |
7 |
MTKJI б |
Ne |
Ns задания |
||
Вар. |
I |
2 |
3 |
I |
Второй игрок |
Первый игрок |
Саша |
2 |
Перный игрок |
Первый игрок |
Первый игрок |
3 |
Первый HipoK |
Второй игрок |
Перный игрок |
4 |
Второй игрок |
Первый трок |
Первый игрок |
5 |
Первый игрок |
Первый игрок |
Первый игрок |
6 |
Второй игрок |
Второй H∣poκ |
Первый игрок |
7 |
Первый H∣poκ |
Второй игрок |
Первый игрок |
8 |
Второй игрок |
Второй игрок |
Первый нгэок |
9 |
Первый игрок |
Первый игрок |
Первый игрок |
10 |
Первый игрок |
Второй игрок |
Первый игрок |
§ 7 Элементы теории алгоритмов
№ вар. |
Ns Задания |
|||||
1 |
2 |
3 |
4 |
5 |
6 |
|
I |
3 |
3 |
122112 |
1 |
31332 |
D |
2 |
3 |
3 |
1212 |
4 |
4142 |
RPQR |
3 |
2 |
2 |
2 |
1 |
ВД4 |
73 |
4 |
4 |
3 |
3 |
26 |
П9 |
17 |
5 |
4 |
3 |
323 |
-22 |
176 |
|
6 |
2 |
4 |
13124 |
1 |
4 |
АННА |
7 |
3 |
4 |
4 |
20 |
8 |
9 |
8 |
2 |
3 |
1312 |
15000 |
3 |
17 |
9 |
3 |
2 |
9 |
32 |
2 |
14 |
10 |
3 |
3 |
31 |
7 |
5 |
213 |
§ 8 Основные конструкции языка программирования
Основные конструкции языка программирования. Ответы к заданиям 5 и 6
Вариант I
1) Например, для чисел Т= 1, У = — 1 (любой точки, которая лежит внутри полосы 0 ≤ Х≤ 2 и ниже оси абсцисс) программа выдаёт сообщение о том. что точка принадлежит указанной области, в то время, как это неверие.
Для точек, которые лежат выше прямой У — х или ниже этой прямой, но левее прямой. т = 2. программа не будет выдавать никакого сообщения.
2) Возможная доработка программы на языке Turbo Paskal: var x, y: real; begin
Readln(x, у);
If (у <= х) and (х <= 2) and (у >= 0) then
Writleln (’принадлежит’)
Else
Writein (’не принадлежит’) end. ——————————— Задача сводится к нахождению номера первою из максимальных элементов массива Л. Пример правильной программы на языке Turbo Paskal: const N = 30;
Var A: array[1..N] of integer;
I, nom : integer;
Begin
For i:=l to N do readln(A[i]);
Nom:=l;
For i:=2 to N do if A[i]>A[nom] then noπr.=i;
Writeln(nom) end.
Вариант 2 |
|
5 |
1) Например, для чисел Х= 0,5, У= -0,5 (любой точки, которая лежит внутри треугольника, ограниченного линиями Х= 0, У= 0 и У = Х — 2) программа выдаёт сообщение о том. что точка нс принадлежит указанной области, в то время, как это неверно. Для точек, которые лежат внутри полосы, ограниченной линиями Х= -2, Х= 0, и выше прямой У= 0. программа выдаёт сообщение о том, такие точки принадлежит указанной области, вто время, как это неверно. Для точек, которые нс лежат в .заштрихованной области и не лежат внутри полосы, ограниченной линиями Х= -2, Х = 0 и выше прямой У —0. программа не будет выдавать никакого сообщения. 2) Возможная доработка программы на языке Turbo Paskal: var x, y: real; Begin Readln(x, у); If (у >= х-2) and (х >= -2) and (у <= 0) then writleln (’принадлежит’) Else Writein (’не принадлежит’) end. |
6 |
Задача сводится к нахождению целой части среднего значения элементов массива А. Пример правильной программы на языке Turbo Paskal: Const N = 31; Var A: array[ 1..N] of integer; I, S-Teπ,. : integer; Begin For i:=l to N do readln(A[i]); S_Teni: =0; For i:=l to N do S. Tem:= S√Γem*A[i]; S-Temz=S-Tem div N; Writein(S-Tem) End. |
Вариант 3 |
|
5 |
I) Например, для чисел Х= -0,5, У= 0,5 (любой точки, которая лежит внутри окружности, но выше параболы и правее оси ординат) программа не будет выдавать никакого сообщения, вто время, как точка с указанными координатами не принадлежит указанной области. 2) Возможная доработка программы на языке Turbo Paskal: var xty: real; Begin Readln(x, у); If (y>≡sqr(x)) and (sqr(x)+sqr(y)<=l) and Cx>=O) then Writleln (’принадлежит’) Else Writein (’не принадлежит’) end. |
6 |
Задача сводится к нахождению минимального элемента массива, значение которого не менее 50, при условии, что хотя бы один такой элемент существует. Пример правильного фрагмента программы на языке Turbo Paskal: Min := 100; For i := 1 to N do If (a[i] >= 50) and (a[i] < min) then min := a[i] ; Uriteln(min); |
____________________ Вариант 4_______________________
1) Например, для чисел Х= 2, У = I (любой точки, которая лежит ниже параболы У= х2. ио выше параболы У= 1-х2) программа не будет выдавать никакого сообщения, в то время, как точка с указанными координатами нс принадлежит указанной области
2) Возможная доработка программы на языке Turbo Paskal: var x, y: real;
Begin
Readln(x, у);
If (y<=sqr(x)) and (y<≡l-sqr(х))
And (y>=0) then
Writlθln (’принадлежит’)
Else
Writein (’не принадлежит’)
End._________________________________________________
Задача сводится к нахождению максимального элемента массива, значение которого не более 100, при условии, что хотя бы один такой элемент существует.
Пример правильного фрагмента программы на языке Turbo Paskal:
Max := 10;
For i := 1 to N do
If (a[i] <= 100) and (a[i] > max) then
Max := a[i] ;
Writein(max);
_____ Вариант 5
1) Например, дня чисел X = -0.5. У~~-0,5 (любой точки. которая лежит внутри квадрата, ограниченного прямыми у = 1. У= 0, Х = -1 и Х= 0) программа выдаёт сообщение о том, что точка принадлежит указанной области, в то время, как это неверно.
Для точек, которые лежат ниже графика функции // = Х3 Или выше прямой У= 1, программа не будет выдавать никакого сообщения.
2) Возможная доработка программы на языке Turbo Paskal: var x, y: real;
Begin
Readln(x, у);
If (у >= x*x*x) and ((x >= 0) and (у <= 1) or (х >= -1) and (у <= 0)) then
Writleln (’принадлежит’)
Else
Writein (’не принадлежит’) end.
Задача сводится к подсчёту максимального количества подряд идущих нулевых элементов в массиве Л, при условии, что хотя бы один такой элемент существует.
Пример правильной программы на языке Turbo Paskal: const N = 30;
Var A: array [1…М] of integer;
I, kl, k2: integer;
Begin
6 for i:=1 to M do readln(A[i]);
Kl:=l; k2:=l;
For i:=2 to N do begin
If (A[i]=l) and (A[i-l]=l) then kl:=kl+l else kl:=l;
If kl>k2 then k2:=kl;
End;
Writein(k2)
End.
ВариАнт 6
I) Например, для чисел Х= -1.6, У= -0, 5 (любой точки, которая лежит внутри заштрихованной области в IIl квадранте) программа выдаёт сообщение о том, что точка не принадлежит указанной области, в то время, как это неверно. Для точек второго и третьей) квадрантов, которые лежат ниже графика функции У= лт(2х) и выше прямой У= J, программа выдаёт сообщение о том. что такие точки принадлежит указанной области, в то время, как это неверно. Для точек, которые лежат ниже графика функции У = Sin(2X)И ниже прямой У = х, программа нс будет выдавать никакого сообщения.
2) Возможная доработка программы на языке Turbo Paskak var x, y: real;
Begin
Readln(x, у);
If (у >= х) and ((y <= sin(2*x)) or
(у >= sin(2*x)) and (у <■ 0)) then Writleln (’принадлежит’)
Else writein (’не принадлежит’) end.
Задача сводится к подсчёту максимального количества подряд идущих элементов в массиве Д, модуль разности между которыми и числом 210 отличается нс более чем на 2 единицы, при условии, что хотя бы один такой элемент существует.
Пример правильной программы на языке Turbo Paskak const N = 30;
Var A: array[1..N] of integer;
I, kl, k2: integer;
Begin
For i:=l to N do readln(A[i]);
Klι=l; k2:=l;
For i:=2 to N do begin
If (abs(210-A[i])<≡2) and (abs(210-A[i-l])<≡2) then kl:=kl+l else kl:=l;
If kl>k2 then k2z≡kl;
End;
Writeln(k2)
______________________ Вариант 7_______________________
1) 1 !апример, для пар чисел (5:1). (3,3) (любой пары чисел, лля которых разность первых координат отличается от разности вторых координат полей только знаком) программа выдаёт сообщение о том, что ферзь не угрожает полю, в то время, как это неверно.
2) Возможная доработка программы на языке Turbo Paskal: var kt lt mt n : byte;
Begin
Readln(ktl, mtn);
If (k=m) or (l=n) or (abs(k-m)=abs(l-n)) then write (’угрожает*)
Else
Write(’не угрожает’); end.
Найдём сумму элементов каждой из двух диагоналей и сравним полученные суммы. Если значения сумм совпадут, то в цикле по IБудем сравнивать найденное значение с суммой каждой i-ой строки и г-го столбца. В случае, если получено хотя бы одно несовпадение, выходим из цикла и получаем отрицательный ответ. В противном случае — ответ положительный.
Пример правильной программы на языке Turbo Paskal: const N = 30;
Var A: array[1..N, 1..N] of integer;
I, j. S, Slt S2: integer; f: boolean;
Begin
For i:=l to N do
For j:=l to N do
Readln(A[i, j]);
Sr=O;
Slr-O;
For 1:-1 to N do begin
Sr=S+A[iti];
Slr=Sl+A[itN-i+l]
End;
F:=S=Sl;
If f then
For i:=l to N do begin
51:=0; S2:=0;
For j:=l to N do begin
Sl:=Sl+A[i, j]; S2:=S2+A[j, i]
End;
If (S<>S1) or (S<>S2) then begin f:=false; break;
End;
End;
If f then writeln(,fla,) else writeln(’нет’) End._____________
_________ Вариант 8_______________________
I) Например, для пар чисел (4;5), (6.6) (любой пары чисел, для которых выполняется первое условие: К — тп= 2 и I — п1) программа выдаёт сообщение о том, что конь нс угрожает полю, в то время, как это неверно.
Для всех пар чисел, при которых программа должна выдавать положительный ответ, программа либо выдаст сообщение о том. что конь не у1рожает полю, либо не выдаёт никакого сообщения.
Для всех пар чисел, при которых HpoipaMMii должна выдавать отрицательный ответ, программа не выдаёт никакого сообщения.
2) Возможная доработка программы на языке Turbo Paskal: var k, 1, ш, n : byte;
Begin
Readln(k, l,m, n);
If (k-m=2) and (l-n=l) or (k-m=l) and (l-n=2) then write (,угрожает’) else
Write(’не угрожает’);
End.
Найдём минимальный элемент в текущей строке и номер столбца, в котором этот элемент находится. Поместим найденный номер в специально созданный одномерный массив. Прежде чем перейти к поиску минимального элемента в следующей строке, проверим, находился ли ранее н столбце с найденным номером минимальный элемент одной из уже просмотренных строк. Если такой номер встречался ранее, то переходим на конец программы, предварительно отобразив сообщение «нет», то есть условие задачи не выполняется. Если в результате поиска минимальных элементов но всех строках, номера столбцов, в которых они находятся, не совпали, то будет выведено сообщение <да >.
Пример правильной программы на языке Turtio Paskak const N = 20;
Var A: array[1..N, 1..N] of integer;
Var С: array[1..И of integer;
I. j* S. Min: byte; f: boolean; Min: integer; begin
For i:»l to N do
For j:=l to M do readln(A[i, j]);
For i:=l to N do begin
Minz=A[i, l]; S. Mιnι≡l;
For j:=2 to N do
If A[i, j] For j:=1 to i do If C[j]=S-Min then begin f:=false; break; End; If f then C[i]:=S-Min else break; End; If f then writeln(’да’) else wrιteln(’нет’) end. ____________________ ВаРиант 9_______________________ 1) Значение переменной S = 36. 2) Возможная доработка программы с использованием одного цикла на языке Turbo Paskal: Const n≡6; Var i, j: byte; A: array[1..n] of integer; Begin For i:=l to n do A[i]∑∙i; For i:=2 to n do A[i] ∙.=A[i-l] +A[i] End._________________________________________________ Примем за максимальную среднюю скорость число 0 и порядковый номер искомого автомобиля положим равным 0. В цикле, вводя расстояние (S) и время (t), затраченное каждым из автомобилей, будем находить среднюю скорость г сравнивать с текущей максимальной скоростью. Если вновь найденная средняя скорость окажется больше, то значение максимальной скорости заменим на найденное, а номер искомого автомобиля заменим на текущее значение параметра цикла. По окончании цикла будут найдены максимальная скорость из средних скоростей движения и порядковый номер автомобиля, имевшего максимальную из средних скоростей движения. Пример правильной программы на языке Turbo Paskal: const N = 30; Var S, t of real; I, nβMax: byte; Max: real; Begin Max :=0; n_Max:=0; For i:=l to N do begin readln(S, t); S:«S/t; If S>Max then begin Maxi=S; n_Max:=i end End; Urite(Max); end. ____________________ Вариант 10______________________ 1 !Значениепеременной S = 72. 2) Возможная доработка программы на языке Turbo Paskal: const n=7; Var i: byte; S: integer; A: array[1..n] of integer; Begin A[l] :=1; For i:=2 to n do A[i]:«a[i-l]*i; For i:=4 to n do A[i]:=i*(i-l) S:=A[n-l] +A[n] ; End. Найдём номер минимального и максимального элементов данной последовательности. Затем найдём сумму тех элементов последовательности, номера которых отличаются от найденных номеров минимального и максимального элементов. При подсчёте среднего арифметического найденную сумму разделим на П — 2 — число элементов последовательности за исключенном одного минимального и одного максимального элементов. Пример правильной программы на языке Turbo Paskal: const N = 10; Var A: array[1..N] of real; I, n_Min, n_Max: byte; Min, Max, Sr: real; begin For i:«l to M do readln(A[i] ) ; Min:«A[l]; n_Min:=l; Max:=A[l]; n_Max:=l; For i:=2 to N do begin If A(i] End; If A[i]>Max then begin Max:=A[i]; n. Max:=i End End; For i:=l to N do If (i<>n. Min) and (i<>n. Max) then Sr:=Sr+a[i]; Sr:=Sr/(n-2); write(Sr); End. § 9. Разработка программ ⅜ Вариант I Согласно условию, нам нужно определить только количество участников но каждому региону. Так как. согласно условию, номер региона состоит нс более чем из двух цифр, то всего может быть представлено не более 99 регионов (с номерами от 1 до 99). Поэтому можно ввести массив из 99 элементов, fc-й элемент массива будет ячейкой-счётчиком, в которой накапливается число участников от региона с номером К. сначала все элементы этого массива обнуляются. Вариант 2 Программа должна читать все входные данные один раз. не запоминая их в массиве, размер которого соответствует числу магазинов или диапазону цен. Во время чтения данных определяются минимальная цена по каждому наименованию товара и количество магазинов, продающих его по этой цене. Для этого можно использовать б переменных или соответствующие массивы. Как минимум, программа должна решать задачу хотя бы для одного частного случая (например, когда по каждому наименованию товара минимальная иена встречается ровно в одном магазине). Замечание. Программа должна работать верно для любых входных данных произвольного размера и находить ответ, не сохраняя входные данные в массиве, размер которого соответствует числу N (количество данных мониторинга) или диапазону цен (5000). Программа должна просматривать входные данные один раз. используя для нахождения ответа два массива из 3-х (8 — 9-и) элементов каждый или 6 соответствующих переменных. При оценивании эффективности программы на экзамене баллы снижаются: если программа работает верно, но входные данные или только цены запоминаются в массиве, в том числе возможно в массиве (трёх массивах) с индексами от 0 до 5000. обозначающем количество магазинов, продающих товар но соответствующей цене, или входные данные считываются несколько раз; вместо алгоритма поиска минимума используется сортировка всех цен. Вариант 3 Программа запоминает фамилии, имена и средний балл в массиве записей (или в нескольких массивах), сразу подсчитывая общую сумму баллов SЗа все экзамены. Далее определяется общий средний балл Затем за дополнительный просмотр этого массива распечатывается информация о тех учениках, которые набрали средний балл не менее общего среднего балла. Вариант 4 Определяем массив TИз 12-тн элементов, каждый элемент которого будет хранить среднемесячную температуру соответствующего месяца. Сначала все элементы этого массива обнуляем. Далее. по мере обработки каждой строки входных данных, среднесуточную температуру из очередной строки добавляем к элементу массива соответствующего месяца. После обработки всех 365 строк fc-ый элемент массива содержит сумму среднесуточных температур fc-ro месяца. Затем, разделив Ar-ый элемент массива TНа количество дней в Ar-ом месяце и сохранив результат в ⅛-omэлементе, мы получим массив, содержащий значения среднемесячных температур каждого месяца. Определяем дополнительный массив номеров месяцев А/, состоящий из 12 элементов (&-ый элемент этого массива равен А). Затем сортируем массив среднемесячных температур TПо убыванию, при этом каждый раз меняя местами Z-ый и J-ый элементы массива Т, меняем местами?-ый и д-ый элементы массива MИ, наконец, выводим на экран в шести строках первые три элемента и последние три элемента массивов TИ Л/ через пробел. Вариант 5 Так как, согласно условию, номер школы состоит нс более чем из двух цифр, то всего может быть представлено не более 99 школ (с номерами от 1 до 99). Поэтому можно определить массив из 99 элементов, А—й элемент которого будет хранить максимальный балл, набранный участниками школы номер К. Сначала во все элементы этого массива записывается некоторый признак того, что из данной школы участников олимпиады не было, например, число -1. Затем полученный результат очередного участника из А’-ой школы сравнивается с К-м элементом массива, и если очередной результат больше fc-ro элемента, то он заменяет А-й элемент. По окончании обработки NСтрок в цикле от 1 до 99 выводятся номера и значения неотрицательных элементов массива. Вариант 6 Программа запоминает фамилии и средний вес одной веши багажа в массиве записей (или в двух массивах), сразу подсчитывая общий суммарный вес SИ общее количество вещей MВсего багажа. C Далее определяется средний вес одной веши —. Затем за допол — 771 Нительный просмотр этого массива распечатываются фамилии тех пассажиров, средний вес одной вещи багажа которых отличается По модулю от — не более чем на 0.5. 771 Вариант 7 Программа читает входные данные, не запоминая их все, а сразу подсчитывая в массиве, хранящем 36 целых чисел, количество абитуриентов, набравших тот или иной балл (от 0 до 35). Если при этом абитуриент получил хотя бы одну двойку, то удобно считать, что его общий балл равен 0. Затем вычисляется сумма элементов этого массива, начиная с 35-го. Если при добавлении очередного элемента массива сумма в точности равна К, то проходной балл набрали ровно Л’ абитуриентов. Если эта сумма оказалась больше Л’. то проходной балл набрали К минус значение последнего добавленного к сумме элемента массива. И. наконец, если сумма всех элементов массива меньше Л’, то именно она является ответом. Вариант 8 Слово длиной N. состоящее из символов открывающих или закрывающих скобок, будем представлять двоичным кодом строки. состоящей из Arдвоичных цифр. Причём, например, двоичную цифру 0 будем считать кодом открывающей скобки, а двоичную цифру 1 — кодом закрывающей скобки. Так как всевозможных слов длиной Л\ состоящих только из символов открывающих и закрывающих скобок, ровно 2NШтук. то. перебирая в цикле все числа от 1 до 2,vи при необходимости дополняя двоичный код каждого числа слева нулями до длины в JV цифр, мы получим двоичные коды всевозможных слов, удовлетворяющих условию. Далее каждую полученную кодовую строку проверяем на соответствие математическим правилам расстановки скобок по следующему алгоритму. В цикле просматриваем все цифры строки, кодирующей очередное слово. При этом, перед началом цикла, некоторую переменную s приравниваем к 0. Затем, если очередная цифра,,0″( соответствующая скобка открывающая), то к SДобавляем единицу, а если очередная цифра последовательности «!»(соответствующая скобка закрывающая), то из Я вычитаем единицу. Если в какой — то момент я оказалось отрицательным, то выходим из цикла, считая последовательность не удовлетворяющей условию. Если же по окончании никла я окажется равной 0, то в соответствующей последовательности скобки расставлены правильно и мы увеличиваем счётчик правильных последовательностей на единицу. По окончании основного цикла выводим значение счётчика в качестве ответа. Вариант 9 Используем четыре. V-элементных массива, в каждом из которых элементы являются записями с полями <Фамилия>и <время>. В первом массиве будем хранить фамилию и время каждого человека, которые задаются первоначально. Остальные три массива требуются для хранения каждой из очередей. Далее приводится алгоритм расстановки люден в три очереди. I. Отсортируем первый (исходный) массив по невозрастанию времени. 2. Расставим первых трёх человек по одному в очереди к каждой кассе. 3.1 !©следующих людей будем расставлять по правилу: если сумма времени тех, кто уже стоит в кассу и вновь добавляемого человека, мсныпе чем максимальная сумма во всех кассах, то человек добавляется в очередь, иначе проверяется следующая касса по тому же правилу Если же ни в одной из очередей правило нс выполняется. то человек помещается в ту очередь, где сумма времени будет наименьшей. I Io окончании этого алгоритма выводятся требуемые результаты. Вариант К) Программа должна читать все входные данные один раз, сразу подсчитывая в массиве с индексами от О до IOO количество изданий, набравших тот или иной балл. Путём просмотра этого массива с копна (от 100 баллов) определяется число издании, заведомо попадающих в число 55% лучших (добавление всех участников. набравших следующий балл, приводит к выходу за 55%). Последний балл, который набрали не менее одного издания, запоминается Если хотя бы одно из следующих изданий также попадает в 55%, то проверяется, что оно и следующие, получившие столько же баллов, набрали более четверти баллов, в этом случае они все добавляются к числу популярных и их балл является искомым. Программа должна решать задачу хотя бы для одного частного случая (например, когда все издания набрали различное количество баллов, каждый балл набрало хотя бы одно издание и 45% от числа изданий, участвовавших в исследовании — целая величина). ⅜Ft Pasfuι6σ∏anpP, P1,m__________________________________________ 217 Замечание. Программа должна работать верно для любых входных данных произвольного! размера и находить ответ, не сохраняя все входные данные или баллы изданий в массиве, размер которого ранен числу изданий. Программа должна просматривать входные данные один раз. заполняя во время считывания массив размерностью от Одо 100для хранения количества изданий, набравших то или иное количество баллов. Искомые величины должны находиться путём однократного просмотра этого массива. При определении минимального балла рассматриваются только баллы, которые какое — либо издание уже набрало. При оценивании эффективности программы на экзамене баллы снижаются: если программа работает верно, но все входные данные (или баллы издания) запоминаются в массиве, размер которого совпадает с количеством изданий, принимавших участие в исследовании, или входные данные считываются несколько раз: используется сортировка всех баллов изданий и/или алгоритм поиска минимума, просматривающий баллы всех популярных изданий.