Информационные источники (основные учебники по предмету). Решение задач




Мая группа № 11 (Информатика и ИКТ)

Урок № 40

Тема программы: Комбинированный тип данных

Тема урока: Решение задач с использованием комбинированного типа данных и текстовых файлов.

Цель: научиться решать задачи с использованием комбинированного типа данных и текстовых файлов.

ПЛАН

1. Повторение теоретического материала

2. Решение задач

Повторение

Все структурные типы данных, с которыми вы уже познакомились (массивы, строки), представляют собой совокупности однотипных величин.

Комбинированный тип данных это структурный тип, состоящий из фиксированного числа компонентов (полей) разных типов.

Комбинированный тип объявляется в программе в разделе типов:

Type = record

:;

имя поля N: тип

End

Поля могут иметь любые типы, в том числе и комбинированный тип.

Наример, данные о результатах экзаменов, полученных учеником по трем предметам:

Type results= record

Family: string[15];

rus: 2..5;

alg: 2..5;

phiz: 2..5;

End;

Запись — величина комбинированного типа данных. Записи являются неоднородными неупорядоченными структурами с прямым доступом к компонентам. Компоненты записи называют полями записи.

Обычно запись содержит совокупность разнотипных атрибутов, относящихся к одному объекту.

Например, информация о рекордах по бегу у мужчин для открытых стадионов может содержать следующие атрибуты

рекордсмен

страна

статус соревнований (Олимпиада, чемпионат мира)

длина дистанции

год рекорда

время

Структурная диаграмма для записи

Запись может быть объявлена в разделе type:

идентификатор типа = Record

поле1: тип;

поле2: тип;

полеN: тип

end;

Например,

type beg = record

fam: string[25];

srtana: string[20];

status: boolean; {Олимпиада - true; чемпионат мира - false}

dlina: longint;

god: 1900..2009;

vr: string[15];

end;

Var a: beg;

К каждому элементу записи можно обратиться, используя составное имя, которое имеет следующую структуру:

Например,

a.fam; a.dlina и т.п.

Если, например, требуется полю "status" присвоить значение «true», то это делается так: status:= true;

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

Например,

type beg1 = record

fam: string[25];

srtana: string[20];

status: boolean; {Олимпиада - true; чемпионат мира - false}

dlina: longint;

god: 1900..2009;

vr: record min: integer;

sec: real;

end;

end;

Var a: beg1;

Поля такой записи, находящиеся на третьем уровне, идентифицируются тройным составным именем. Например,

a.vr.min

a.vr.sec

Решение задач

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

1. Из данного списка спортсменов получить данные о тех из них, кто занимается плаванием. Указать возраст, сколько лет они занимаются спортом.

Program sportmans;
uses crt;
Type Sport=Record Family, discipline:string[20];
vozrast,letVsporte:integer;
end;
var A:array [1..3] of sport;

i,n,s:integer;

Begin Write ('Vvedite koli4estvo sportsmenov');
Read (n);
For i:=1 to n do
Begin Writeln ('Vvedite dannie sportsmena');
With A[i] do
begin
writeln ('Vvedite vozrast sportsmena');
readln (vozrast);
writeln ('Vvedite disciplinu');
readln (discipline);
writeln ('Vvedite koli4estvo let v sporte');
Readln (letVsporte);
Writeln ('Vvedite Family');
Readln (Family);
end;
end;

S:=0;
For i:=1 to n do
With a[i] do
If discipline = 'plavanie'
then S:=S+1;
Writeln (S);

End.

2. Из ассортимента конфет, выпускаемых кондитерской фабрикой, выбрать те, стоимость которых от 100 до 200 руб. за 1 кг. Указать срок их годности и номера магазинов, в которых они имеются в продаже.

Из ассортимента конфет, выпускаемых кондитерской фабрикой, выбрать те, стоимость которых от 100 до 200 руб. за 1 кг. Указать срок их годности и номера магазинов, в которых они имеются в продаже.

type konf=record
name: string[45];
cena:integer;
god:integer;
mag:integer;
end;
var kon: array [1..100] of konf;
I,k,max: integer;
a:array[1..100]of integer;
begin
for I:=1 to 3 do
begin
writeln ('введите название');
readln (kon[I].name);
writeln ('введите цену');
readln (kon[I].cena);
writeln ('введите срок годности');
readln (kon[I].god);
writeln ('введите номер магазина');
readln (kon[I].mag);
end;
for i:=1 to 3 do
if (kon[I].cena>=100) and (kon[I].cena<=200) then begin
writeln(kon[I].name);
writeln(kon[I].god);
writeln(kon[I].mag);end;
readln;
end.

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

program lab100301;
uses crt;
type
tablica=record
name:string[10];
sred:real;
rus,math,fiz:byte;
end;
var
a:tablica;
mas:array[1..30] of tablica;
s:real; n:integer;
i:integer;
begin
clrscr;
writeln('введите количество учеников ');
readln(n);
for i:=1 to n do
with mas[i] do
begin
write('фамилия ',i,'-го ученика: '); readln(name);
write('русский язык: '); readln(rus);
write('математика: '); readln(math);
write('физика: '); readln(fiz);
sred:=(rus+math+fiz)/3;
s:= s + sred;
writeln('Средний бал ученика: ', name,' ', sred:3:1);
end;

s:= s / n;
writeln('Обший средний бал: ',s);
writeln('');
writeln('ученики чей средний бал выше среднего ');
writeln('');
writeln(' ________________________ ');
writeln('| фамилия |средний балл |');
writeln(' ------------------------ ');
for i:=1 to n do
with mas[i] do
if mas[i].sred>s then
begin
write('|',name:9,'|');
writeln(sred:14:2,'|');
end;
writeln(' --------------------------');
readkey;
end.

Домашнее задание: Повторить § 29, решить задачу

Получить список тех учителей школы, которые преподают математику и информатику, указать стаж их работы и недельную нагрузку.

Информационные источники (основные учебники по предмету)

Информатика. Базовый уровень: учебник для 10 класса / Семакин И. Г., Хеннер Е. К., Т.Ю. Шеина.- 5-е изд. — М.: БИНОМ. Лаборатория знаний, 2015. —264 с.

Ресурсы сети Интернет

1. https://videouroki.net/video/35-kombinirovannyj-tip-dannyh.html



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2020-06-10 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: