На вход программе подаются сведения об учениках некоторой средней школы. В первой строке сообщается количество учеников N, каждая из следующих N строк имеет следующий формат: , где — строка, состоящая не более чем из 20 символов, — строка, состоящая не более чем из 15 символов, — год обучения (от 1 до 12) и заглавная буква (от «А* до «Я») без пробела. и , а также разделены одним пробелом. Пример входной строки:
Иванов Петр 10Б
Требуется написать программу на языке Паскаль или Бейсик, которая будет выводить на экран информацию о параллелях (годе обучения) с наибольшим числом учеников. Программа должна выводить на экран в первой строке количество учеников в искомых параллелях, а во второй строке — в порядке возрастания номера этих параллелей через пробел. Например:
Решение:
Программа должна верно читать входные данные, не запоминая их все, а сразу подсчитывая в массиве, хранящем 12 целых чисел, количество учащихся в каждой из параллелей. Затем с использованием этого массива ищется параллель с максимальным числом учеников. За дополнительный просмотр этого массива распечатывается информация об искомых параллелях. Баллы начисляются только за программу, которая решает задачу хотя бы для частного случая (например, параллель с максимальным количеством учеников единственна).
Матрица по спирали. Поколение Python
Источник: examme.ru
Сведения о сдаче экзаменов учениками 9-х классов некоторой средней школы — PascalABC.NET
Помогите найти ошибку в моей программе. Не нужно писать свою программу. На вход программе подаются сведения о сдаче экзаменов учениками 9-х классов некоторой средней школы.
В первой строке сообщается количество учеников N, которое не меньше 10, но не превосходит 100, каждая из следующих N строк имеет следующий формат: <Фамилия> , где <Фамилия>– строка, состоящая не более чем из 20 символов, – строка, состоящая не более чем из 15 символов, – через пробел три целых числа, соответствующие оценкам по пятибалльной системе. <Фамилия>и , а также и разделены одним пробелом. Пример входной строки: Иванов Петр 4 5 3 Требуется написать как можно более эффективную программу (укажите используемую версию языка программирования, например, Borland Pascal 7.0), которая будет выводить на экран фамилии и имена трех худших по среднему баллу учеников. Если среди остальных есть ученики, набравшие тот же средний балл, что и один из трех худших, то следует вывести и их фамилии и имена.
program c4; Var Saf:Array[1..100] Of Integer; Var FI: Array[1..100] of String; Var p2p,i,min1,min2,min3,n:Integer; Var s: String; begin Writeln(‘Введите количество учащихся. ‘); Read(N); Writeln (‘Введите строку, содержащую сведения о сдаче экзамена’); For i:=1 to N do begin Readln(s); p2p:=PosEx(‘ ‘,s,pos(‘ ‘,s)+1); FI[i]:=Copy(s,1,p2p-1); Delete(s,1,p2p); SAF[i]:=(StrToInt(copy(s,1,1))+StrToInt(Copy(s,3,1))+StrToInt(copy(s,5,1)))div 3; end; min1:=20;min2:=20;min3:=20; For i:=1 to N do begin If Saf[i] < min1 then begin min3:=min2; min2:=min1; min1:=Saf[i]; end else If Saf[i]If Saf[i]
Код к задаче: «Сведения о сдаче экзаменов учениками 9-х классов некоторой средней школы»
Листинг программы
Цикл с параметром. Python. Разбор домашнего задания
const LIM = 100; var Info: array[1..LIM] of record name: string; sum: integer; end; i, k, N, mark, min1, min2, min3: integer; c: char; begin 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 for i:=1 to N do if Info[i].sum
Источник: studassistent.ru
Задача 893 На вход программе подаются сведения о.
На вход программе подаются сведения о номерах школ учащихся, участвовавших в олимпиаде. В первой строке сообщается количество учащихся N, каждая из следующих N строк имеет формат:
где – строка, состоящая не более чем из 20 символов, – строка, состоящая из 4-х символов (буква, точка, буква, точка), – не более чем двузначный номер. и , а также и разделены одним пробелом. Пример входной строки:
Требуется написать как можно более эффективную программу (укажите используемую версию языка программирования, например, Borland Pascal 7.0), которая будет выводить на экран информацию, из какой школы было меньше всего участников (таких школ может быть несколько). При этом необходимо вывести информацию только по школам, пославшим хотя бы одного участника. Следует учитывать, что N>=1000.
информатика 10-11 класс 5247
Решение
const LIM = 99;
var C:array[1..LIM] of integer;
i, p, N, k, r, Min: integer;
s:string;
begin
for k:=1 to 99 do C[k]:=0;
readln(N);
for i:=1 to N do begin
readln(s); < читаем очередную строку >
< выделяем часть после второго пробела >
p := Pos(‘ ‘, s);
Delete(s, 1, p+5);
< определяем номер школы k >
Val(s, k, r);
C[k] := C[k] + 1; < увеличиваем счетчик k-ой школы >
end;
Min := N;
for k:=1 to LIM do
if (C[k] <> 0) and (C[k]
for k:=1 to LIM do
if C[k] = Min then writeln(k);
end.
Ответ: в решение
Источник: reshimvse.com