Transcript ***** 1

Записи в Паскале
Типы данных
НАЗВАНИЕ
Длина,
байт
Диапазон значений
Byte
ShortInt
Word
Integer
LongInt
1
1
2
2
4
0…255
-128…+127
0…65535
-32768…+32767
-2 147 483 648…+2 147 483 647
BOOLEAN
1
False, True
CHAR – занимает 1 байт,
REAL – 6 байт,
STRING (n), n принимает значение от 0 до 255.
По умолчанию длина строки равна 255.
Записи очень важный и удобный инструмент.
Даже не применяя специальные технологии, с его
помощью можно создавать собственные
базы данных.
Записи - это структура данных, каждый элемент
которой имеет собственное имя и тип данных.
Элемент записи иначе называют поле.
Описание записи имеет вид:
type имя_типа_записи = record
название_поля : тип_поля ;
...
название_поля : тип_поля ;
end;
№1
После единых выпускных экзаменов по
информатике в район пришла информация о
том, какой ученик, какой школы сколько
набрал баллов. Эта информация в том же виде
была разослана в школы.
Создать таблицу с данной информацией и
вывести ее на экран. Таблица содержит
данные о 100 учениках.
type opisanie=record
familia: string[20];
ima: string[15];
shkola: integer;
ball: integer;
end;
var a:array[1..100] of opisanie; i:integer;
begin
for i:=1 to 100 do
begin
read (a[i].familia); read (a[i].ima);read
(a[i].shkola);read (a[i].ball);
end;
for i:=1 to 100 do
begin
write(a[i].familia); write(' ',a[i].ima);write('
',a[i].shkola);write(' ',a[i].ball);
writeln;
end;
end.
№2
После единых выпускных экзаменов по
информатике в район пришла информация о
том, какой ученик, какой школы сколько
набрал баллов. Эта информация в том же виде
была разослана в школы. Таблица содержит
данные о 100 учениках.
Завуч школы №30 решила наградить лучшего
учащегося, который лучше всех сдал
информатику.
Программа должна вывести на экран фамилию
и имя этого ученика.
type opisanie=record
familia: string[20];
ima: string[15];
shkola: integer;
ball: integer;
end;
var a:array[1..100] of opisanie; i,max:integer;
begin max:=0;
for i:=1 to 100 do
begin
read (a[i].familia); read (a[i].ima);read (a[i].shkola);
read (a[i].ball);
end;
for i:=1 to 100 do
begin
if (a[i].ball>max) and (a[i].shkola=30) then
max:=a[i].ball;
end;
for i:=1 to 100 do
if (a[i].ball=max) then begin write(a[i].familia);
write(' ',a[i].ima); end;
end.
№3
После единых выпускных экзаменов по
информатике в район пришла информация о
том, какой ученик, какой школы сколько
набрал баллов. Эта информация в том же виде
была разослана в школы. Таблица содержит
данные о 100 учениках.
Завуч школы №30 решила наградить двух
лучших учащихся, которые лучше всех сдали
информатику.
Программа должна вывести на экран фамилии
и имена этих учеников.
var a:array[1..100] of opisanie; i,max,max1:integer;
begin max:=0; max1:=0;
for i:=1 to 100 do
begin
read (a[i].familia); read (a[i].ima);read (a[i].shkola); read
(a[i].ball);
end;
for i:=1 to 100 do begin
if (a[i].ball>max) and (a[i].shkola=30) then
max:=a[i].ball; end;
for i:=1 to 100 do
begin
if (a[i].ball<max) and (a[i].shkola=30) and
(a[i].ball>max1) then max1:=a[i].ball;
end;
for i:=1 to 100 do begin
if (a[i].ball=max) then begin write(a[i].familia); write('
',a[i].ima); end;
if (a[i].ball=max1) then begin write(a[i].familia); write('
',a[i].ima); end;
end;
end.
№4
После единых выпускных экзаменов по информатике в район пришла
информация о том, какой ученик, какой школы сколько набрал баллов.
Эта информация в том же виде была разослана в школы.
Завуч школы №30 решила наградить двух учащихся, которые лучше
всех сдали информатику.
Программа должна вывести на экран фамилии и имена этих учеников.
На вход программе сначала подается число учеников, сдававших
экзамен. В каждой из следующих N строк находится информация об
учениках в формате:
<Фамилия><Имя><Номер школы><Количество баллов>
<Фамилия>-строка, состоящая не более чем из 30 символов без пробелов,
<Имя>- строка, состоящая не более чем из 20 символов.
<Номер школы>-число в диапазоне от 1 до 99
<Количество баллов>-число в диапазоне от 1 до 100.
Эти данные записаны через пробел, то есть в каждой строке ровно 3
пробела.
var stroka,str1:string[52];c:char;
i,N,shkola,ball,max,max1:integer;
Begin
max:=0; max1:=0; stroka:=''; str1:='';
Writeln('vvedi kol-vo uchenikov ');readln(N);
for i:=1 to N do begin
stroka:='';
Repeat
read(c);
Stroka:=Stroka+c;
Until c=' ';
Repeat
read(c);
Stroka:=Stroka+c;
Until c=' ';
read(shkola);
read(ball);
if (shkola=30) and (ball>max) then begin max:=ball;
str1:=stroka; end;
end;
Writeln (str1); end.