Файл: Практическая работа 1. Образовательные информационные ресурсы.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 09.12.2023

Просмотров: 376

Скачиваний: 3

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Вариант 4

  1. Дана матрица размера 4 на 4 целого типа. Найти количество отрицательных элементов главной диагонали матрицы.

  2. Задать матрицу размера 5 на 5 по следующей формуле: . Вывести полученную матрицу.

  3. Дана матрица размера 3 на 3 действительного типа. Найти максимальный элемент 2-й строки матрицы.

  4. Задать матрицу размера 4 на 4 по следующей формуле: . Вывести полученную матрицу. Найти сумму положительных элементов матрицы.



Практическая работа №8.

Связь одномерных и двумерных массивов с простыми типами.
Цель работы: закрепление навыков решения задач с использованием одномерных и двумерных массивов на языке Паскаль.
Оборудование: персональный компьютер, программа PascalABC, методические указания по работе (в электронном виде находятся в папке «Методические указания» на рабочем столе компьютера), карты-задания
Содержание и последовательность выполнения практической работы:

  1. Инструктаж по технике безопасности

  2. Выполнение практического задания


Задания.

Студенты решают задачи на компьютерах по вариантам с помощью среды программирования PascalABC.

Вариант 1

  1. Даны натуральные n и m. Вычислить двойную сумму .

  2. Последовательность задана рекуррентно: a1=0,2; a2=2; an=2an-1-3an-2; где n=3, 4, … Вычислить первые 10 элементов последовательности. Найти сумму отрицательных элементов.

  3. Дана матрица размера 4 на 4 целого типа. Найти сумму элементов в каждой строке матрицы. Вывести полученный массив.



Вариант 2

  1. Дано натуральное число n. Вычислить сумму .

  2. Последовательность задана рекуррентно: a1=1; a2=-2; an=an-1+an-2; где n=3, 4, … Вычислить первые 10 элементов последовательности. Сосчитать количество отрицательных элементов.

  3. Дана матрица размера 4 на 4 целого типа. Умножить элементы 3-го столбца матрицы на 3. Вывести полученный массив.

Вариант 3

  1. Дано натуральное число n. Вычислить сумму .

  2. Последовательность задана рекуррентно: a1=-2; a2=3; an=3an-1-an-2; где n=3, 4, … Вычислить первые 10 элементов последовательности. Найти сумму положительных элементов последовательности.

  3. Дана матрица размера 4 на 4 целого типа. Заменить элементы 2-й строки матрицы на их модуль. Вывести полученный массив.


Вариант 4

  1. Даны натуральные n и m. Вычислить двойную сумму .

  2. Последовательность задана рекуррентно: a1=5; a2=-3; an=an-1-2an-2; где n=3, 4, … Вычислить первые 10 элементов последовательности. Сосчитать количество положительных элементов.

  3. Дана матрица размера 4 на 4 целого типа. Сложить элементы 1-го и 4-го столбцов матрицы. Вывести полученный массив.


Практическая работа №9.

Составление программ с использованием типа “Запись”.
Цель работы: закрепление навыков решения задач с данными типа «Запись» на языке Паскаль.
Оборудование: персональный компьютер, программа PascalABC, методические указания по работе (в электронном виде находятся в папке «Методические указания» на рабочем столе компьютера), карты-задания
Содержание и последовательность выполнения практической работы:

  1. Инструктаж по технике безопасности

  2. Выполнение практического задания


Теория.

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

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

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

Анкета студента:

  1. Фамилия, Имя, Отчество;

  2. Пол;

  3. Дата рождения;

  4. Адрес;

  5. Курс;

  6. Группа;

В Паскале эта информация может храниться в одной переменной типа Запись. Задать тип и описать соответствующую переменную можно следующим образом:

Type имя типа=record;

поле 1:тип;

поле 2:тип;



поле n:тип;

End;

Пр. Type anketa=Record;

FIO:String[50];

Pol:Char;

Dat:String[16];

Adres:String[50];

Curs:integer;

Grup:string[5];

End;

Var student:anketa;

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

Например: student.fio, student.dat и т.п. Если, например полю курс присвоить значение 3, то это можно сделать следующим образом:

Student.Curs:=3;

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



Любая обработка записей, в том числе ввод и вывод, производится поэлементно.

Например, ввод сведений о 500 студентах можно организовать следующим образом:

For i:=1 to 500 do

With Student [i] do

Begin

Write (‘Ф.И.О.’); Readln (FIO);

Write (‘Пол (м/ж)’); Readln (Pol);

Write (‘Дата рождения’); Readln (Dat);

Write (‘Адрес‘); Readln (Adres);

Write (‘Курс‘); Readln (Curs);

Write (‘Группа’); Readln (Grup);

End;

В этом примере использован оператор присоединения, который имеет следующий вид:
With имя переменной типа запись do

Begin

Действия

End;

Он позволяет, один раз указав имя переменной типа запись после слова With, работать в пределах оператора с именами полей как с обычными переменными, т.е. не писать громоздких составных имен.

Примеры задач.

    1. В группе 30 студентов. О каждом студенте известно: фамилия и оценки по 8 предметам. Найти среднюю оценку каждого студента и выдать на экран среднюю оценку и фамилию лучшего студента.

Program zapis;

Const n=30;

Type sved=record;

fio:string[50];

p1, p2, p3, p4, p5, p6, p7, p8:integer;

ocsr:real;

End;

Var s:array[1..n] of sved;

i,k: integer;

max: real;

Begin

writeln(‘введите данные о ’,n,‘ студентах’);

For i:=1 to n do

With spisok [i] do

Begin

Writeln (‘введите фамилию ученика‘);

Readln (famil);

Writeln (‘введите оценки по восьми предметам’);

Readln (p1, p2, p3, p4, p5, p6, p7, p8);

Clrscr;

End;

{нахождение среднего балла }

for i:=1 to n do

with s[i] do

ocsr:=(p1+p2+p3+p4+p5+p6+p7+p8)/8;

{нахождение максимального среднего балла}

max:=s[1].ocsr;

for i:=1 to n do

if s[i].ocsr>max

then

begin

max:=s[i].ocsr;

k:=i

end;

{печать сведений о лучшем ученике}

writeln(‘Лучший ученик’)

writeln (‘ФИО - ’,s[k].fio,‘ средний балл - ’ ,s[k].ocsr);

end.

    1. Составить программу, которая позволит ввести данные о 10 автомобилях предприятия (марка, цвет, пробег, год выпуска, водитель) и выдаст сведения об автомобилях, старше 10 лет.

Program Avto;

Const n=10;

Type mash=record;

marka:string[25];

cvet:string[15];

probeg:real;

god_vip:integer;

voditel:string[25];

End;

Var s:array [1.. n] of mash;

i:integer;

Begin

writeln (‘Введите данные о ’,n,‘ автомобилях’);

for i:=1 to n do

with s[i] do

begin

write(‘введите марку автомобиля‘); readln(marka);

write(‘введите цвет автомобиля’); readln(cvet);

write(‘введите пробег автомобиля’); readln(probeg);

write(‘введите год выпуска’); readln(god_vip);

write(‘введите фамилию водителя’); readln(voditel);

end;

writeln(‘автомобили старше 10 лет’);


for i:=1 to n do

begin

with s[i] do

begin

if 2011-god_vip>10

then

begin

writeln (‘марка машины - ’,marka);

writeln (‘цвет машины - ’,cvet);

writeln (‘пробег - ’,probeg);

writeln (‘водитель - ’,voditel);

end;

end;

end;

End.

    1. Составить программу, которая позволяет ввести данные о 15 деталях, находящихся на складе (название, количество, стоимость одной детали). Вывести название и количество самой дорогой детали.

Program detali;

Const n=15;

Type detal=record;

nazv:string[25];

kol:integer;

cena:real;

End;

Var s:array [1.. n] of detal;

i,k:integer;

max:real;

Begin

writeln (‘Введите данные о ’,n,‘ деталях’);

for i:=1 to n do

with s[i] do

begin

write(‘введите название детали’); readln(nazv);

write(‘введите количество этой детали на складе’); readln(kol);

write(‘введите цену 1-й детали’); readln(cena);

end;

max:=s[1].cena;

k:=1;

for i:=1 to n do

begin

with s[i] do

begin

if cena>max

then

begin

max:=cena;

k:=i

end;

end;

end;

writeln(‘самая дорогая деталь’);

writeln (‘название - ’,s[k].nazv);

writeln (‘количество - ’,s[k].kol);

End.

    1. Составить программу, которая позволяет ввести данные о 20 кубиках (цвет, материал, длина ребра). Сосчитать количество кубиков с длиной ребра меньше 5 см.

Program kubiki;

Const n=20;

Type kub=record;

cvet:string[25];

material:string[25];

dlina_rebra:real;

End;

Var s:array [1.. n] of kub;

i,k:integer;

Begin

writeln (‘Введите данные о ’,n,‘ кубиках’);

for i:=1 to n do

with s[i] do

begin

write(‘введите цвет кубика’); readln(cvet);

write(‘введите материал, из которого изготовлен’); readln(material);

write(‘введите длину ребра’); readln(dlina_rebra);

end;

k:=0;

for i:=1 to n do

with s[i] do

begin

if dlina_rebra<5 then k:=k+1

end;

writeln(‘количество кубиков с длиной ребра меньше 5 см. =’,k);

End.
Задания.

Студенты решают задачи на компьютерах по вариантам с помощью среды программирования PascalABC.

Вариант 1

  1. Известны данные о 5 пассажирах: ФИО, количество вещей и общий вес вещей. Вывести ФИО и количество вещей пассажира с максимальным общим весом вещей.

  2. Известны данные о 5 студентах: ФИО, рост и вес. Вывести ФИО и вес всех студентов, которые ниже 180 см.

  3. Известны данные о 5 кубиках: цвет, материал и длина ребра. Сосчитать количество красных кубиков.

Вариант 2

  1. Известны данные о 5 мячиках: цвет и радиус. Вывести цвет самого маленького мячика.

  2. Известны данные о 5 спортсменах: ФИО, возраст и вид спорта. Вывести ФИО и возраст тех спортсменов, которые занимаются плаванием.

  3. Известны данные о 5 рабочих: ФИО, стаж, оклад. Сосчитать количество рабочих с окладом больше 15 000 рублей.


Вариант 3

  1. Известны данные о 5 сортах конфет: название, цена и фабрика изготовитель. Вывести название и фабрику изготовитель самых дорогих конфет.

  2. Известны данные о 5 студентах: ФИО, год рождения и специальность. Вывести ФИО и специальность тех студентов, которые родились после 1994 года.

  3. Известны данные о 5 пассажирах: ФИО, количество вещей и общий вес вещей. Сосчитать количество пассажиров с количеством вещей больше 2.

Вариант 4

  1. Известны данные о 5 кубиках: цвет, материал и длина ребра. Вывести цвет и материал самого маленького кубика.

  2. Известны данные о 5 учениках музыкальной школы: ФИО, класс, инструмент. Вывести ФИО и класс тех из них, кто занимается игрой на скрипке.

  3. Известны данные о 5 спортсменах: ФИО, возраст, вид спорта. Сосчитать количество спортсменов младше 20 лет.


Практическая работа №10.

Решение задач с использованием записей.
Цель работы: закрепление навыков решения задач с данными типа «Запись» на языке Паскаль.
Оборудование: персональный компьютер, программа PascalABC, методические указания по работе (в электронном виде находятся в папке «Методические указания» на рабочем столе компьютера), карты-задания
Содержание и последовательность выполнения практической работы:

  1. Инструктаж по технике безопасности

  2. Выполнение практического задания

Задания.

Студенты решают задачи на компьютерах по вариантам с помощью среды программирования PascalABC.

Вариант 1

  1. Известны данные о 5 пассажирах: ФИО, количество вещей и общий вес вещей. Вывести ФИО и количество вещей пассажира с весом вещей больше 30 кг.

  2. Известны данные о 5 студентах: ФИО, рост и вес. Вывести ФИО и рост самого тяжелого студента.

  3. Известны данные о 5 мячиках: цвет и радиус. Сосчитать количество синих мячиков.

Вариант 2

  1. Известны данные о 5 спортсменах: ФИО, возраст и вид спорта. Сосчитать количество спортсменов, которые занимаются фехтованием.

  2. Известны данные о 5 рабочих: ФИО, стаж, оклад. Вывести фамилию и стаж рабочих с окладом больше 25 000 рублей.

  3. Известны данные о 5 игрушках: название, количество, цена за 1 штуку. Вывести название и количество самой дешевой игрушки.

Вариант 3

  1. Известны данные о 5 сортах конфет: название, цена и фабрика изготовитель. Сосчитать количество сортов конфет дешевле 200 рублей.

  2. Известны данные о 5 студентах: ФИО, год рождения и специальность. Вывести ФИО и специальность самого старшего студента.

  3. Известны данные о 5 учениках музыкальной школы: ФИО, класс, инструмент. Вывести ФИО и инструмент, тех из них, кто учится в 3-м классе.