- •В.А. Лучников программирование на языках высокого уровня. Методические указания по выполнению лабораторных работ
- •Содержание
- •Лабораторная работа № 1 Выражения и операторы присваивания
- •Задание на лабораторную работу
- •Пример оформления работы
- •Задания на лабораторную работу №1
- •Пример оформления работы
- •Задания на лабораторную работу №2
- •Пример оформления работы
- •Int n; // целого типа
- •Задания на лабораторную работу №3
- •Пример оформления работы Задание 1.
- •Int n; // целого типа
- •Задание 2.
- •Int a, a1, a2, k, n, s; //описание переменных
- •Int a, a1, a2, n, s; // целого типа
- •Задания на лабораторную работу №4
- •Пример оформления работы
- •If (c In ['0'..'9']) Then {если очередной элемент - цифра}
- •Val(s,k,error); {преобразуем строку в число}
- •Задания на лабораторную работу №5
- •Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 5
- •Вариант 6
- •Вариант 7
- •Вариант 8
- •Вариант 9
- •Вариант 10
- •Вариант 11
- •Вариант 12
- •Вариант 13
- •Вариант 14
- •Вариант 15
- •Лабораторная работа № 6 Массивы
- •Задание на лабораторную работу
- •Пример оформления работы Задание 1.
- •Int n, vector_min, vector_max, min, max, i_min, i_max; String input, text; // строк класса String
- •Задание 2.
- •Int n, massiv_min, massiv_max, temp; // целого типа
- •Задания на лабораторную работу №6
- •Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 5
- •Вариант 6
- •Вариант 7
- •Вариант 8
- •Вариант 9
- •Вариант 10
- •Вариант 11
- •Вариант 12
- •Вариант 13
- •Вариант 14
- •Вариант 15
- •Вариант 16
- •Вариант 17
- •Вариант 18
- •Вариант 19
- •Вариант 20
- •Лабораторная работа № 7 Подпрограммы
- •Задание на лабораторную работу
- •Пример оформления работы Задание 1.
- •Задание 2.
- •Задания на лабораторную работу №7
- •Вариант 1
- •Вариант 15
- •Лабораторная работа № 8 Файлы
- •Задание на лабораторную работу
- •Пример оформления работы Задание 1.
- •Задание 2.
- •Задания на лабораторную работу №8
- •Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 5
- •Вариант 6
- •Вариант 7
- •Вариант 8
- •Вариант 9
- •Вариант 10
- •Вариант 11
- •Вариант 12
- •Вариант 13
- •Вариант 14
- •Вариант 15
- •Лабораторная работа № 9 Рекурсия
- •Задание на лабораторную работу
- •Пример оформления работы Задание 1.
- •Задание 2.
- •Задания на лабораторную работу №9
Задание на лабораторную работу
Получить задание в соответствии с номером своего варианта.
Составить схему алгоритма решения задачи.
Написать код программы на языке Паскаль в среде Borland Pascal for Windows.
Осуществить компиляцию, и отладку программы. Провести структурное тестирование программы (тестирование как белого ящика): составить тестовые наборы для тестирования
в нормальных условиях,
при граничных условиях,
при некорректных входных данных,
по критерию покрытия решений – результат проверки каждого условия принимал значение истина или ложь хотя бы один раз,
по критерию покрытия условий – все возможные результаты каждой логической операции в условиях были получены хотя бы по одному разу.
Получить результат.
Оформить отчет по лабораторной работе.
Пример оформления работы Задание 1.
1.Создать функцию, определяющую сумму максимальных элементов главной и побочной диагоналей массиваmassivnn.
Перед началом поиска максимального элемента max_1главной диагонали массива принимаем за него элементmassiv11. После этого сравниваем остальные элементы главной диагоналиmassivii (i=2,…,n)с текущим максимумом: если очередной элемент больше текущего максимумаmax_1, то сейчас он – текущий максимум.
Перед началом поиска максимального элемента max_2побочной диагонали массива принимаем за него элементmassivnn. После этого сравниваем остальные элементы побочной диагоналиmassivij (i=2,…,n; j=n-i+1)с текущим максимумом: если очередной элемент больше текущего максимумаmax_2, то сейчас он – текущий максимум.
2. Схема алгоритма решения задачи.
2.1. Головная программа:
2.2. Подпрограмма-функция:
Код программы
3.1. На языке Паскаль:
Program Variant_0;
Uses WinCrt;
Const n = 5; {задание размера массива именованной константой}
Type TMass=Array [1..n, 1..n] Of Integer;{описание нового типа}
Var i, j : Word;
summa, v_min, v_max: Integer;
massiv : TMass;
Function Summa_max(nn:Integer; AA:TMass):Integer;
Var i, max_1, max_2: Integer;
Begin
max_1:=AA[1,1];
For i:=2 To nn Do
If (AA[i,i]>max_1)
Then max_1:=AA[i,i];
max_2:=AA[1,nn];
For i:=2 To nn Do
If (AA[i,nn-i+1]>max_2)
Then max_2:=AA[i,nn-i+1];
Summa_max:=max_1+max_2;
End; {функции Summa_max}
Begin {головной программы}
Randomize; {запуск генератора случайных чисел}
WriteLn('Лабораторная работа №7_1');
WriteLn('Вариант №0');
WriteLn('ИС-11-1');
WriteLn('Пупкин Василий');
WriteLn;
WriteLn('Задайте диапазон случайных чисел');
Write('v_min=');
ReadLn(v_min);
Write('v_max=');
ReadLn(v_max);
For i:=1 To n Do {заполнение массива случайными числами}
For j:=1 To n Do
massiv[i,j]:=Random(v_max-v_min + 1) + v_min;
WriteLn;
WriteLn('Исходный массив:');
For i:=1 To n Do {вывод на экран исходного массива}
Begin
For j:=1 To n Do
Write(massiv[i,j]:5);
WriteLn;
End;
WriteLn;
summa:=Summa_max(n, massiv);
WriteLn('Сумма максимальных элементов диагоналей:', summa);
End.
На языке Си:
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <time.h>
// прототипы функций
void vorm_mass(int nn, int mass_max, int mass_min, int mass[nn][nn]);
int summa_max(int nn, int mass[nn][nn]);
int main()
{
int i, j, n, massiv_min, massiv_max, summa;
printf("\nЛабораторная работа №7_1");
printf("\nВариант №0");
printf("\nПО-11-1");
printf("\nПупкин Василий\n");
printf("\nВведите нижнюю границу диапазона:");
scanf("%d", &massiv_min);
printf("\nВведите верхнюю границу диапазона:");
scanf("%d", &massiv_max);
printf("\nВведите размер массива:");
scanf("%d", &n);
int massiv[n][n];
printf("\nИсходный массив:\n");
vorm_mass(n, massiv_max, massiv_min, massiv);
for (i=0; i<n; i++)
{
for (j=0; j<n; j++)
printf("%5d", massiv[i][j]);
printf("\n");
}
printf("\n");
summa = summa_max(n, massiv);
printf("\nСумма максимальных элементов диагоналей: %d", summa);
return 0;
}
//описание функций
// 1. формирование массива
void vorm_mass(int nn, int mass_max, int mass_min, int mass[nn][nn])
{
int i, j, m;
time_t t; // текущее время для инициализации
// генератора случайных чисел
srand((unsigned) time(&t)); // инициализация генератора
// случайных чисел
m = mass_max-mass_min + 1;
// получение случайного числа в диапазоне
// от mass_min до mass_max
for (i=0; i<nn; i++)
for (j=0; j<nn; j++)
mass[i][j]=rand()% m + mass_min;
}
// 2. определение суммы максимальных элементов диагоналей массива
int summa_max(int nn, int mass[nn][nn])
{
int i, max_1, max_2;
max_1 = mass[0][0];
for (i=1; i<nn; i++)
if (mass[i][i] > max_1)
max_1 = mass[i][i];
max_2 = mass[0][nn-1];
for (i=1; i<nn; i++)
if (mass[i][nn-i-1] > max_2)
max_2 = mass[i][nn-i-1];
return max_1 + max_2;
}
4. Компиляция, отладка, тестирование и получение результата: