Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Комбинированный и множественный типы данных.




Цель работы

1. Использование записей при решении задач.

2. Использование множеств и операций над множествами.

Пример первого задания.

Для заданного количества (MaxN) ЭВМ определяется отношение стоимости к производительности. Производительность задается в миллионах операций в секунду отдельно для скалярных и векторных операций; стоимость - в долларах. Программа выбирает ЭВМ с минимальным отношением стоимости к производительности отдельно для скалярных и векторных операций и печатает характеристики.

Const

MaxN=5;

Type

Computer=record

Firma, namecomp:string[20];

Year:2000..2010;

Proizv:record

Scal, vect:Integer

End;

Price: Integer;

PriceToProizv:array[1..2] of real;

End;

Var

a: array[1..MaxN] of Computer;

I,j1,j2:Integer;

R1,r2:real;

Procedure In_Data; { Процедура ввода данных }

Begin

Writeln(‘введите данные ЭВМ’);

With A[I],proizv do

Begin

Write(‘введите название фирмы’);

Readln(firma);

Write(‘введите название comp’);

Readln(namecomp);

Writeln(‘введите характеристики’);

Readln(Year, Proizv, Scal, vect, Price);

PriceToProizv[1]:= price/scal;

PriceToProizv[2]:= price/vect;

End;

End;

BEGIN { основная программа}

Writeln;

For i:=1 to MaxN do

In_Data;

{ поиск ЭВМ с минимальным отношением стоимости к производительности отдельно для скалярных и векторных операций}

R1:=A[1].PriceToProizv[1]; j1:=1;{ для скалярных операций }

R2:=A[1].PriceToProizv[2]; j2:=2; { для векторных операций }

For i:=2 to MaxN do

With A[I] do

Begin

If PriceToProizv[1]<r1 then

Begin

R1:=PriceToProizv[1]; j1:=i;

End;

If PriceToProizv[2]<r2 then

Begin

R2:=PriceToProizv[2]; j2:=i;

End;

End;

{ Печать характеристик }

With A[j1],proizv do{ ЭВМ с min отношением ст/пр для скалярных операций}

Writeln(firma, namecomp,Year:5, Scal:8, vect:8, Price:8, PriceToProizv[1]:7:2, PriceToProizv[2]:7:2);

With A[j2],proizv do{ ЭВМ с min отношением ст/пр для векторных операций}

Writeln(firma, namecomp,Year:5, Scal:8, vect:8, Price:8, PriceToProizv[1]:7:2, PriceToProizv[2]:7:2);

END.

Пример второго задания.

Известен набор продуктов: хлеб, масло, сыр, молоко, имеющихся в ассортименте магазинов. В 3 магазина поставлены отдельные виды этих продуктов. Требуется построить множества А, В, С, которые содержат соответственно:

· продукты, имеющиеся одновременно во всех магазинах;

· продукты, имеющиеся, по крайней мере, в одном из магазинов;

· продукты, которых нет ни в одном из магазинов.

 

Const

N=3;

Type

Product=(bread,butter,cheese,milk); {продукты }

Assort=set of product; {ассортимент продуктов }

Shop=array[1..n] of assort; {наличие продуктов в магазинах }

 

Var

M1:shop;

X: Product;

A,b,c,xm1: assort;

I,j,v,iw:integer;

BEGIN

For I:=1 to n do

Begin

Xm1:=[];

Writeln(‘введите номера продуктов ‘,I:2, ‘-го магазина=‘);

Repeat

Read(iw);

Case iw of

1:x:=bread;

2:x:=butter;

3:x:=cheese;

4:x:= milk;

else

write(‘номера продуктов 1..4’);

end; {case}

xm1:=xm1+[x]; {наличие продуктов в одном магазине }

until eoln;

m1[1]:=xm1

end; {конец цикла по магазинам }

{получение множеств А,В,С }

A:=m1[1];

B:=[];

For I:=1 to 3 do

Begin

A:=A*m1[1]; ];{одновременно во всех }

B:=B+ m1[1{хотя бы в одном }

C:=[ bread.. milk]-B; {нет ни в одном }

End;

For I:=1 to 3 do

Begin

Case i of

1: Writeln(‘продукты, имеющиеся во всех магазинах ‘);

2: Writeln(‘ассортимент продуктов ‘);

3: Writeln(‘продукты, которых нет ни в одном магазине ‘);

end;

For x:=bread to milk do

If x in a then

Case x of

Bread: Write(‘хлеб ‘);

Butter: Write(‘масло ‘);

Cheese: Write(‘сыр ‘);

Milk: Write(‘молоко ‘);

end; {case}

if I:=1 then a:=b

else

a:=c;

writeln

end

END.

 

Рекомендуемая литература:

1. В.В. Попов Паскаль и Дельфи. Учебный курс. - СПб.: Питер, 2005.

2. Г.Г. Рапаков, С.Ю. Ржеуцкая Turbo Pascal для студентов и школьников СПб.: БХВ-Петербург, 2005.

3. А.Б.Ставровский Турбо Паскаль 7.0. Учебник.- К.: Торгово-издательское бюро BHV, 2000.

4. С.М. Окулов Основы программирования – М.: ЮНИМЕДИАСТАЙЛ, 2002

 

Основная литература:

1. Белов В.В. Программирование в DELPHI: процедурное, объектно-ориентированное, визуальное [Электронный ресурс]: учебное пособие / В.В. Белов, В.И. Чистякова. — Электрон. дан. — М.: Горячая линия-Телеком, 2014. — 240 с. — Режим доступа: http://e.lanbook.com/books/element.php?pl1_id=64091

2. Иванова Г.С. Средства процедурного программирования Microsoft Visual C ++ 2008 [Электронный ресурс]: учебное пособие / Г.С. Иванова, Т.Н. Ничушкина, Р.С. Самарев. — Электрон. дан. — М.: МГТУ им. Н.Э. Баумана (Московский государственный технический университет имени Н.Э. Баумана), 2012. — 140 с. — Режим доступа: http://e.lanbook.com/books/element.php?pl1_id=52414

3. Богонин М.Б. Языки и системы программирования. Процедурные языки программирования на примерах Pascal и Си: учебное пособие [Электронный ресурс]: учебное пособие. — Электрон. дан. — Пенза: ПензГТУ (Пензенский государственный технологический университет), 2012. — 212 с. — Режим доступа: http://e.lanbook.com/books/element.php?pl1_id=62777.

4. Богонин М.Б. Языки и системы программирования. Процедурные языки программирования на примерах Pascal и Си: учебно-методическая разработка для лабораторного практикума [Электронный ресурс]: учебно-методическое пособие / М.Б. Богонин, О.Е. Чуфистов, Е.Я. Хижняк. — Электрон. дан. — Пенза: ПензГТУ (Пензенский государственный технологический университет), 2012. — 116 с. — Режим доступа: http://e.lanbook.com/books/element.php?pl1_id=62440

5. Соколова, Ю.С. Разработка приложений в среде Delphi. В 2 частях. Часть 1. Общие приемы программирования. [Электронный ресурс]: учебное пособие / Ю.С. Соколова, С.Ю. Жулева. — Электрон. дан. — М.: Горячая линия-Телеком, 2013. — 142 с. — Режим доступа: http://e.lanbook.com/books/element.php?pl1_id=5196

6. Медведик, В.И. Практика программирования на языке Паскаль (задачи и решения) [Электронный ресурс]: учебное пособие. — Электрон. дан. — М.: ДМК Пресс, 2013. — 590 с. — Режим доступа: http://e.lanbook.com/books/element.php?pl1_id=58700

7. Дмитриев, Н.Н. Моделирование инженерных задач на языке программирования Free Pascal в среде Lazarus: учебное пособие для вузов [Электронный ресурс]: учебное пособие / Н.Н. Дмитриев, В.Ю. Сахаров. — Электрон. дан. — СПб.: БГТУ "Военмех" им. Д.Ф. Устинова (Балтийский государственный технический университет «Военмех» имени Д.Ф. Устинова), 2012. — 61 с. — Режим доступа: http://e.lanbook.com/books/element.php?pl1_id=63711

Дополнительная литература:

1. Москвитина, О.А. Сборник примеров и задач по программированию [Электронный ресурс]: учебное пособие / О.А. Москвитина, В.С. Новичков, А.Н. Пылькин. — Электрон. дан. — М.: Горячая линия-Телеком, 2014. — 245 с. — Режим доступа: http://e.lanbook.com/books/element.php?pl1_id=64090

2. Окулов, С.М. Задачи по программированию [Электронный ресурс]: / С.М. Окулов, Т.В. Ашихмина, Н.А. Бушмелева. — Электрон. дан. — М.: "Лаборатория знаний" (ранее "БИНОМ. Лаборатория знаний"), 2014. — 825 с. — Режим доступа:http://e.lanbook.com/books/element.php?pl1_id=66115

3. Окулов, С.М. Основы программирования [Электронный ресурс]:. — Электрон. дан. — М.: "Лаборатория знаний" (ранее "БИНОМ. Лаборатория знаний"), 2015. — 339 с. — Режим доступа: http://e.lanbook.com/books/element.php?pl1_id=66119

 

 





Поделиться с друзьями:


Дата добавления: 2016-11-20; Мы поможем в написании ваших работ!; просмотров: 618 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Начинайте делать все, что вы можете сделать – и даже то, о чем можете хотя бы мечтать. В смелости гений, сила и магия. © Иоганн Вольфганг Гете
==> читать все изречения...

2286 - | 2070 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.011 с.