Файл: Практическая работа 1. Образовательные информационные ресурсы.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 09.12.2023
Просмотров: 376
Скачиваний: 3
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Вариант 4
-
Дана матрица размера 4 на 4 целого типа. Найти количество отрицательных элементов главной диагонали матрицы. -
Задать матрицу размера 5 на 5 по следующей формуле: . Вывести полученную матрицу. -
Дана матрица размера 3 на 3 действительного типа. Найти максимальный элемент 2-й строки матрицы. -
Задать матрицу размера 4 на 4 по следующей формуле: . Вывести полученную матрицу. Найти сумму положительных элементов матрицы.
Практическая работа №8.
Связь одномерных и двумерных массивов с простыми типами.
Цель работы: закрепление навыков решения задач с использованием одномерных и двумерных массивов на языке Паскаль.
Оборудование: персональный компьютер, программа PascalABC, методические указания по работе (в электронном виде находятся в папке «Методические указания» на рабочем столе компьютера), карты-задания
Содержание и последовательность выполнения практической работы:
-
Инструктаж по технике безопасности -
Выполнение практического задания
Задания.
Студенты решают задачи на компьютерах по вариантам с помощью среды программирования PascalABC.
Вариант 1
-
Даны натуральные n и m. Вычислить двойную сумму . -
Последовательность задана рекуррентно: a1=0,2; a2=2; an=2an-1-3an-2; где n=3, 4, … Вычислить первые 10 элементов последовательности. Найти сумму отрицательных элементов. -
Дана матрица размера 4 на 4 целого типа. Найти сумму элементов в каждой строке матрицы. Вывести полученный массив.
Вариант 2
-
Дано натуральное число n. Вычислить сумму . -
Последовательность задана рекуррентно: a1=1; a2=-2; an=an-1+an-2; где n=3, 4, … Вычислить первые 10 элементов последовательности. Сосчитать количество отрицательных элементов. -
Дана матрица размера 4 на 4 целого типа. Умножить элементы 3-го столбца матрицы на 3. Вывести полученный массив.
Вариант 3
-
Дано натуральное число n. Вычислить сумму . -
Последовательность задана рекуррентно: a1=-2; a2=3; an=3an-1-an-2; где n=3, 4, … Вычислить первые 10 элементов последовательности. Найти сумму положительных элементов последовательности. -
Дана матрица размера 4 на 4 целого типа. Заменить элементы 2-й строки матрицы на их модуль. Вывести полученный массив.
Вариант 4
-
Даны натуральные n и m. Вычислить двойную сумму . -
Последовательность задана рекуррентно: a1=5; a2=-3; an=an-1-2an-2; где n=3, 4, … Вычислить первые 10 элементов последовательности. Сосчитать количество положительных элементов. -
Дана матрица размера 4 на 4 целого типа. Сложить элементы 1-го и 4-го столбцов матрицы. Вывести полученный массив.
Практическая работа №9.
Составление программ с использованием типа “Запись”.
Цель работы: закрепление навыков решения задач с данными типа «Запись» на языке Паскаль.
Оборудование: персональный компьютер, программа PascalABC, методические указания по работе (в электронном виде находятся в папке «Методические указания» на рабочем столе компьютера), карты-задания
Содержание и последовательность выполнения практической работы:
-
Инструктаж по технике безопасности -
Выполнение практического задания
Теория.
Все структурированные типы данных, с которыми мы уже познакомились, представляют собой совокупности однотипных величин.
Комбинированный тип данных – это структурированный тип, состоящий из фиксированного числа компонент (полей) разного типа. Комбинированный тип имеет еще и другое название – запись.
Обычно запись содержит совокупность разнотипных атрибутов, относящихся к одному объекту. Например, анкетные сведения о студенте могут быть представлены в виде информационной структуры.
Анкета студента:
-
Фамилия, Имя, Отчество; -
Пол; -
Дата рождения; -
Адрес; -
Курс; -
Группа;
В Паскале эта информация может храниться в одной переменной типа Запись. Задать тип и описать соответствующую переменную можно следующим образом:
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, работать в пределах оператора с именами полей как с обычными переменными, т.е. не писать громоздких составных имен.
Примеры задач.
-
В группе 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.
-
Составить программу, которая позволит ввести данные о 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.
-
Составить программу, которая позволяет ввести данные о 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.
-
Составить программу, которая позволяет ввести данные о 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
-
Известны данные о 5 пассажирах: ФИО, количество вещей и общий вес вещей. Вывести ФИО и количество вещей пассажира с максимальным общим весом вещей. -
Известны данные о 5 студентах: ФИО, рост и вес. Вывести ФИО и вес всех студентов, которые ниже 180 см. -
Известны данные о 5 кубиках: цвет, материал и длина ребра. Сосчитать количество красных кубиков.
Вариант 2
-
Известны данные о 5 мячиках: цвет и радиус. Вывести цвет самого маленького мячика. -
Известны данные о 5 спортсменах: ФИО, возраст и вид спорта. Вывести ФИО и возраст тех спортсменов, которые занимаются плаванием. -
Известны данные о 5 рабочих: ФИО, стаж, оклад. Сосчитать количество рабочих с окладом больше 15 000 рублей.
Вариант 3
-
Известны данные о 5 сортах конфет: название, цена и фабрика изготовитель. Вывести название и фабрику изготовитель самых дорогих конфет. -
Известны данные о 5 студентах: ФИО, год рождения и специальность. Вывести ФИО и специальность тех студентов, которые родились после 1994 года. -
Известны данные о 5 пассажирах: ФИО, количество вещей и общий вес вещей. Сосчитать количество пассажиров с количеством вещей больше 2.
Вариант 4
-
Известны данные о 5 кубиках: цвет, материал и длина ребра. Вывести цвет и материал самого маленького кубика. -
Известны данные о 5 учениках музыкальной школы: ФИО, класс, инструмент. Вывести ФИО и класс тех из них, кто занимается игрой на скрипке. -
Известны данные о 5 спортсменах: ФИО, возраст, вид спорта. Сосчитать количество спортсменов младше 20 лет.
Практическая работа №10.
Решение задач с использованием записей.
Цель работы: закрепление навыков решения задач с данными типа «Запись» на языке Паскаль.
Оборудование: персональный компьютер, программа PascalABC, методические указания по работе (в электронном виде находятся в папке «Методические указания» на рабочем столе компьютера), карты-задания
Содержание и последовательность выполнения практической работы:
-
Инструктаж по технике безопасности -
Выполнение практического задания
Задания.
Студенты решают задачи на компьютерах по вариантам с помощью среды программирования PascalABC.
Вариант 1
-
Известны данные о 5 пассажирах: ФИО, количество вещей и общий вес вещей. Вывести ФИО и количество вещей пассажира с весом вещей больше 30 кг. -
Известны данные о 5 студентах: ФИО, рост и вес. Вывести ФИО и рост самого тяжелого студента. -
Известны данные о 5 мячиках: цвет и радиус. Сосчитать количество синих мячиков.
Вариант 2
-
Известны данные о 5 спортсменах: ФИО, возраст и вид спорта. Сосчитать количество спортсменов, которые занимаются фехтованием. -
Известны данные о 5 рабочих: ФИО, стаж, оклад. Вывести фамилию и стаж рабочих с окладом больше 25 000 рублей. -
Известны данные о 5 игрушках: название, количество, цена за 1 штуку. Вывести название и количество самой дешевой игрушки.
Вариант 3
-
Известны данные о 5 сортах конфет: название, цена и фабрика изготовитель. Сосчитать количество сортов конфет дешевле 200 рублей. -
Известны данные о 5 студентах: ФИО, год рождения и специальность. Вывести ФИО и специальность самого старшего студента. -
Известны данные о 5 учениках музыкальной школы: ФИО, класс, инструмент. Вывести ФИО и инструмент, тех из них, кто учится в 3-м классе.