Решение задач С2
Одномерный массив Двумерный массив шахматы
Решение задач С4
На вход программе подаются сведения о сдаче экзаменов учениками 9-х классов некоторой средней школы. В первой строке сообщается количество учеников N, которое не меньше 10, но не превосходит 100, каждая из следующих N строк имеет следующий формат:, где - строка, состоящая не более чем из 20 символов, строка, состоящая не более чем из 15 символов, - через пробел три целых числа, соответствующие оценкам по пятибалльной системе. и, а также и разделены одним пробелом. Пример входной строки: Иванов Петр Требуется написать как можно более эффективную программу (укажите используемую версию языка программирования, например, Borland Pascal 7.0), которая будет выводить на экран фамилии и имена неуспевающих учеников (имеющих по результатам экзаменов хотя бы одну двойку), располагая их в порядке уменьшения числа двоек. var р:array[1..100] of record
var р:array[1..100] of record name:string; sum:integer; end; с:char; i,j,N,m:integer; begin readln(N); for i: = l to N do begin p[i].name: =' '; repeat read(c); p[i].name:=p[i].name+c until c= ; repeat read(с); p[i].name:=p[i].name+c until c= ; p[i].sum:=0; for j:=1 to 3 do begin read(m); if m=2 then p[i].sum:=p[i].sum+1 end; {подсчитано количество двоек} readln; end; for i:=l to N do if p[il.sum=3 then writeln(p[i].name); for i:=l to N do if p[i].sum=2 then writeln(p[i].name); for i:=l to N do if p[i].sum=1 then writeln(p[i].name) end. {считано имя) {считана фамилия) {считывание оценок}
После единых выпускных экзаменов по информатике в район пришла информация о том,какой ученик,какой школы,сколько набрал баллов. Районый методист решила выяснить номер школы,ученики которой набрали наибольший средний балл,с точностью до целых. Программа должна вывести на экран номер такой школы и её средний балл. Если наибольший средний балл набрало больше одной школы,вывести количество таких школ. Напишите эффективную,в том числе и по используемой памяти, программу(укажите используемую версию языка программирования),которая должна вывести на экран требуемую информацию. Также известно,что в районе школ с некоторыми номерами не существует. На вход программе сначала подается число учеников,сдававших экзамен.В каждой из следующих N строк находится информация об учениках в формате: -строка,состоящая не более чем из 30 символов без пробелов, -строка,состоящая не более чем из 20 символов. -число в диапазоне от 1 до 99 -число в диапазоне от 1 до 100. Эти данные записаны через пробел,то есть в каждой строке ровно 3 пробела.
program C4_2; uses crt; type massiv=array[1..99] of integer; var count:massiv; //массив количества учеников,где индекс-номер школы sumball:massiv; //массив суммы баллов ch:char; i,N,nomer,ball,max,nmax:integer; Begin for i:=1 to 99 do begin count[i]:=0; //обнуляем массивы sumball[i]:=0; end; write('Введите количество учеников: ');readln(n); for i:=1 to n do begin Repeat read(ch); Until ch= ; //фамилия считана Repeat read(ch); Until ch= ;//Имя read(nomer); read(ball);
count[nomer]:=count[nomer]+1; //счетчик количества учеников sumball[nomer]:=sumball[nomer]+ball; //сумма баллов end; for i:=1 to 99 do if count[i]>0 then sumball[i]:=sumball[i] div count[i]; //вычисляется средний балл с точностью до целых max:=1; nmax:=1; for i:=2 to 99 do if sumball[i]>sumball[max] then //поиск максимального среднего балла begin max:=i; nmax:=1; end else if sumball[i]=sumball[max] then inc(nmax); if nmax=1 then writeln(max,' ',sumball[max]) else writeln(nmax); End.