Партнерка на США и Канаду по недвижимости, выплаты в крипто
- 30% recurring commission
- Выплаты в USDT
- Вывод каждую неделю
- Комиссия до 5 лет за каждого referral
4. Построение блок-схемы вычислений с проверкой условия после выполнения тела цикла.
Блок-схема алгоритма вычисления суммы ряда z с постусловием
5. Написание программы вычисления
Var
eps, u, x, z: real;
k: word;
Begin
writeln (‘Введите значение аргумента x и точность eps’);
readln(x, eps);
k:=0; u:=-1; z:=0;
Repeat
k:=k+1; u:=-x/k*u; z:=z+u;
Until abs(u)/abs(z)<eps;
writeln(‘Результат’, z:10:6);
End.
Порядок выполнения лабораторной работы
1. Выполнить задания 1 и 2.
2. Если необходимо провести отладку программ с помощью встроенного отладчика (см. лабораторную работу № 2).
3. Проверить правильность работы программ с помощью тестового примера, решенного вручную.
4. Выбрать соответствующий порядковому номеру вариант индивидуального задания из таблицы 4.3. и выполнить п. п. 1-3.
5. Оформить отчет по лабораторной работе, включив в него только вариант индивидуального задания.
В отчете должны быть представлены:
1. Формулировка задачи (индивидуального задания).
2. Структурная схема алгоритма.
3. Текст программы.
4. Тестовый вариант, решенный вручную и рассчитанный на компьютере.
5. Сравнение результатов ручного и машинного расчетов.
Таблица 4.3
Варианты индивидуальных заданий
Номер варианта | Задачи | Значения исходных данных |
1. | У кассира имеются монеты достоинством 1,5, 10 копеек. Составить программу, позволяющую определять сдачу, меньшую рубля минимальным количеством монет. Обеспечить возможность неоднократного решения задачи без повторной загрузки программы | |
2. | Составить программу, определяющую средний балл сдачи экзамена в студенческой группе, состоящей из N человек. | |
3. | Составить программу табулирования функции: Y=Sin x – Cos x | 3,14<X<3,14, с шагом 0,1 |
4. | Составить программу, позволяющую переводить температуру из градусов по шкале Цельсия в градусы шкалы Фаренгейта по формуле F=1,8*C+32 | Интервал значений от 15 до 30 градусов с шагом 1. |
5. | Составить программу для вычисления суммы квадратов N вещественных чисел. Количество чисел должно быть запрошено программой. | Числа вводятся с клавиатуры |
6. | Составить программу, определяющую по номеру месяца его название. | |
7. | Составить программу, позволяющую отсортировать три вещественных числа по убыванию. Результат вывести на экран в строчку. | |
8. | Составить программу, позволяющую отсортировать N вещественных чисел по возрастанию Результат вывести на экран в столбик | |
9. | Составить программу нахождения квадрата наибольшего из двух чисел А и В и вывести на печать признак N=1, если наибольшим является А, и N=2 в противном случае. | |
10. | Составить программу перевода миль в километры для расстояния от 5 до 75 миль с шагом 5. Одна миля составляет 1,609 км. Результат оформить в виде таблицы | |
11. | Составить программу, определяющую количество положительных значений переменной Х. Результат вывести на экран. | |
12. | Составить программу для следующей задачи: начав тренировки, спортсмен в первый день пробежал 10 км. Каждый следующий день он увеличивал дневную норму на 10% от нормы предыдущего дня. Какой суммарный путь пробежал спортсмен за 7 дней. | |
13. | Составить программу, позволяющую выводить на экран в виде таблицы значений зависимость плотности воздуха от высоты | Р0=1,29 кг/м3, z=1,25 м, высота h должна изменяться от 0 до 1000 м через 100 м. |
14. | Составить программу ввода с клавиатуры любого номера дня недели, расшифровки его и вывода на экран наименования дня на русском языке. Обеспечить возможность неоднократного решения задачи без повторной загрузки программы. | |
15. | Составить программу вывода на экран таблицы умножения 10*10. | |
16. | Составить программу, позволяющую вводить строку символов (не более 80) и подсчитать в ней количество символов заданного вида. Обеспечить возможность неоднократного решения задачи для разных заданных символов без повторной загрузки программы. | |
17. | В автобазе имеются машины грузоподъемностью 5, 8 и 15 тонн. Составить программу, позволяющую определять для заданного объема перевозок минимальное количество автомашин. Обеспечить возможность неоднократного решения задачи без повторной загрузки программы. | |
18. | Составить программу, определяющую количество дней в каждом из 12 месяцев заданного года. Программа должна запрашивать у пользователя № года и выводить на экран наименование месяцев и количество дней. Обеспечить возможность неоднократного решения задачи без повторной загрузки программы. |
ЛАБОРАТОРНАЯ РАБОТА № 5
Программирование алгоритмов циклической структуры c заданным
числом повторений. Массивы и типовые алгоритмы их обработки
Цель работы: овладение практическими навыками алгоритмизации и программирования структур с заданным числом повторений на примере работы с массивами; изучение типовых алгоритмов обработки одномерных и двумерных массивов.
Задание на самостоятельную подготовку
1.Изучить, используя материал пособия «Алгоритмизация и элементы программирования» и литературу, указанную в нем:
- способы описания массивов;
- способы ввода и вывода массивов;
- реализацию приемов выполнения операций с массивами.
2. Разработать алгоритм решения в соответствии с заданием.
3. Составить программу решения задачи.
4. Подготовить тестовый вариант данных для проверки правильности выполнения программ и найти для него решение вручную.
Для выполнения индивидуального задания использовать приведенные в лабораторной работе демонстрационные задания.
Задание 1 (одномерные массивы). Вычислить наибольший элемент массива вещественных чисел X размера N(N<=10) и его индекс.
Решение: 1. Построение схемы алгоритма
2. Написание текста программы
Program maximum;
Const nn=30;
Type vector=Array [1..nn] of real;
Var
x:vector; {массив вещественных чисел}
n:integer; {фактический размер}
max:real; {максимальный элемент массива}
imax:integer; {его порядковый номер}
i:integer; {параметр цикла}
Begin
Writeln(‘введите фактическое количество n элементов массива’);
{ввод фактического количества элементов массива}
readln(n);
{ввод элементов массива по одному в каждой строке}
writeln(‘Введите элементы массива’);
For i:=1 To N Do readln(x[i]);
{инициализация выходных переменных}
max:=x[1]; imax:=1;
{Сравнение всех элементов массива с переменной max}
For i:=2 To n Do
If x[i]>max Then
Begin
max:=x[i];
imax:=I;
End;
{вывод выходных переменных на экран}
writeln(‘Максимальный элемент массива: ’, max:7:2);
writeln(‘Его порядковый номер: ’, imax:2);
End.
Тестирование программы выполним для N=5, и данных, приведенных в таблице 5.1.
Таблица 5.1.
Элемент массива | Значение |
x[1] | 0 |
x[2] | 10,0 |
x[3] | 5,1 |
x[4] | -8,2 |
x[5] | 2,1 |
Тогда максимальный элемент равен 10,0; его порядковый номер равен 2.
Результаты работы программы: максимальный элемент массива: 0010,00
порядковый номер: 02
При отладке программы можно отслеживать значения переменных max и imax в окне отладки (см. лабораторную работу № 2)
Задание 2 (одномерные массивы). Переписать все элементы одномерного массива А размера n (N<=20) в массив D, заменив отрицательные значения на их квадраты. Сравнить исходный и полученный массивы на равенство, выдав на экран сообщение о результатах сравнения. Ограничение: A[i] – целые.
Решение:
1. Описание алгоритма. Используем словесное описание.
Скопируем все элементы массива А в массив D.
Рассмотрим поэлементно массив D.
Каждый отрицательный элемент, оказавшийся в массиве D заменим на его квадрат.
2. Написание текста программы
Type M=Array[1…20] of Integer;
Var
N, i:integer;
A, D:M;
Begin
write(‘введите размер вектора А<=20’);
readLn(N);
For i:=1 To N Do
Begin
write(‘введите’, I:2,’-й элемент’);
readLn(A[i]);
End;
D:=A; {действие с массивами как с единым целым}
For i:=1 To N Do
If D[i]<0 Then D[i]:=sqr(D[i]);
writeLn(‘Исходный вектор:’);
For i:=1 To N Do
write(A[i],‘ ’);
writeLn;
writeLn(‘Полученный вектор’);
For i:=1 To N Do
write(D[i],‘ ’);
writeLn;
End.
Тестирование программы:
Полученный вектор
N=5, A:1
D:
массивы различны
N=6, A:
D:
массивы одинаковы
Задание 3 (двумерные массивы). Построить и вывести на экран вектор, элементы которого равны средним арифметическим элементов строк матрицы целых чисел D размера NxM (N<=10, M<=4).
Решение.
1. Словесное описание алгоритма.
1.1. Ввод размеров матрицы N, M.
1.2. Ввод матрицы D размером NxM.
1.3. Построение вектора:
- вводим дополнительную переменную SUM, которая будет содержать среднее арифметическое значение каждой i-той строки матрицы;
- проверяем, равняется ли число таких элементов N;
- элементы - это вещественные числа, которые необходимо записать в вектор С размера N.
1.4. Вывод вектора С размером N на экран.
1.5. Вывод исходной матрицы.
2. Написание текста программы
Program s_vector;
Const
c1=10;
c2=3;
Type
vector =Array[1…c1] of Real;
matr=Array[1…c1,1…c2] of Integer;
Var
D:matr; {входная матрица}
C:vector; {выходной вектор}
Sum:real; {дополнительная переменная}
n, m,i, j:integer;
Begin
write(‘Введите число строк:’);
readLn(n);
write(‘Число столбцов:’);
readLn(m);
write(‘Введите матрицу в общепринятом виде’);
For i:=1 To n Do
Begin
For j:=1 To m Do
read(D[i, j]);
readLn;
End; {конец ввода данных}
For i:=1 To n Do
Begin
Sum:=0;
For j:=1 To m Do
Sum:=Sum+D[I, j];
Sum:=Sum/m;
C[i]:=Sum;
End;
writeLn(‘Построен вектор:’);
For i:=1 To n Do
write(C[i]:3:1,‘ ’);
writeLn;
writeLn (‘Исходная матрица’);
For i:=1 To n Do
Begin
For j:=1 To m Do
write(D[i, j]:3:1,‘ ’);
writeLn;
End
End
Тестирование программы:N=3, M=4,
, C=
.
Решение на компьютере:
Введите число строк: 3
Число столбцов: 4
Введите матрицу в общепринятом виде
1 –1 4 0
Построен вектор:
1.5,1.5, 0,5
Исходная матрица:
1 –1 4 0
При отладке программы можно просматривать на каждой итерации значения переменных Sum и C[i] (см. лабораторную работу № 2)
Порядок выполнения лабораторной работы
1. Выполнить задания 1,2,3.
2. Вывести на экран исходный массив и результаты.
3. Проверить правильность работы программ с помощью тестового примера, решенного вручную.
4. Выбрать соответствующий порядковому номеру вариант индивидуального задания из таблицы 5.2. и выполнить п. п. 1-3.
5. Оформить отчет по лабораторной работе, включив в него только вариант индивидуального задания.
В отчете должны быть представлены:
1. Формулировка задачи индивидуального задания.
2. Структурная схема или описание алгоритма решения.
3. Текст программы.
4. Тестовый вариант, решенный вручную и рассчитанный на компьютере.
5. Сравнение результатов ручного и машинного расчетов.
Таблица 5.2
Варианты индивидуальных заданий
Номер варианта | Задачи |
1. | Составить программу для вычисления суммы каждой строки двумерного массива вещественных чисел 4 строки на 3 столбца и вывода результатов на экран |
2. | Составить программу, которая сортирует по убыванию элементы одномерного массива. |
3. | Составить программу транспонирования квадратной матрицы |
4. | Составить программу для ввода массива не более 50 целых чисел и нахождения их суммы. |
5. | Составить программу обработки массива информации об объемах выпуска предприятием трех наименований изделий в течение шести месяцев. Двумерный массив имеет 6 столбцов, содержащих объемы выпуска изделий по месяцам, и 3 строки, содержащих данные по каждому из изделий. Определить значения нового массива, элементами которого являются среднемесячный выпуск каждого изделия. |
6. | Составить программу, которая вводит двумерный массив вещественных чисел и меняет местами максимальный и минимальный элементы в каждой строке. |
7. | Подсчитать число строк матрицы, в которых есть отрицательные элементы, массив С(N, M), N<=10, M<=10. |
8. | Составить программу, которая сортирует четные строки двумерного массива по возрастанию значений элементов, а нечетные строки – по убыванию. |
9. | Составить программу обработки массива данных по расходу электроэнергии пятью предприятиями города. Строки массива содержат данные по каждому предприятию, столбцы – данные о плановом и фактическом объемах потребления электроэнергии. Определить предприятия, которые имеют перерасход электроэнергии и предприятие с максимальным перерасходом. |
10. | Транспонировать матрицу и вывести на экран элементы главной диагонали. Результаты разместить в виде столбца. Матрица F(N, M), Fij – целые. |
11. | Составить программу, которая вводит двумерный массив целых чисел, и максимальный элемент каждой строки ставит на главную диагональ |
12. | Вычислить сумму и число положительных элементов, находящихся над главной диагональю, Массив M(N, N), N<=12, Cij>0 |
13. | Составить программу обработки ведомости получения материалов четырьмя цехами с пяти складов в денежном выражении. Программа должна определить номер склада, выдавшего материалов на меньшую сумму. |
14. | Построить вектор С, элементы которого равны суммам квадратов элементов каждой строки матрицы, массив В(3,4) |
15. | Составить программу, которая вводит двумерный массив и ставит вместо отрицательных элементов массива нули, а вместо положительных – единицы. |
16. | Составить программу, которая определяет максимальный элемент двумерного массива и его порядковый номер. |
17. | Составить программу обработки ведомости перевозки грузов автомобилями трех автотранспортных предприятий за полгода. Ведомость представлена в виде двумерного массива, где строки – объемы перевозок по месяцам для одного предприятия Первое предприятие имеет 50 автомобилей, второе – 45, третье – 60. Определить предприятие, на котором, наибольшая средняя нагрузка на автомобиль. |
18. | Составить программу, которая определяет минимальный и максимальный элементы двумерного массива и выводит их на экран |
ЛАБОРАТОРНАЯ РАБОТА № 6
Программирование с использованием процедур и функций
Цель работы: научиться составлять программы на языке Паскаль с использованием процедур и функций.
Задание на самостоятельную подготовку
1.Изучить, используя материал пособия «Алгоритмизация и элементы программирования» и литературу, указанную в нем:
- правила описания и использования функции;
- правила описания и использования процедуры;
- механизм обмена информацией между подпрограммой и вызывающей программной единицей.
2. Разработать алгоритм решения в соответствии с заданием.
3. Составить программу решения задачи.
4. Подготовить тестовый вариант данных для проверки правильности выполнения программ и найти для него решение вручную.
Для выполнения индивидуального задания использовать приведенные в лабораторной работе демонстрационные задания.
Задание 1 (использование функции). Даны векторы A(5) и В(5), состоящие из вещественных чисел. Найти длины векторов, представляющих их сумму и разность. Вычисление длины вектора оформить в виде функции. Длина, к примеру, суммы векторов А и В определяется выражением
ds=
Решение.
1. Описание алгоритма или построение схемы алгоритма выполнить самостоятельно.
2. Написание программы.
Uses
сrt;
Type
vector=Array[1..5] of Real;
Var
a, b, s, r:vector; {s - вектор суммы ai+bi }
{r - вектор разностей ai-bi}
ds, dr:real;
i: 1..5;
Function ddd(v:vector):real;
Var
i: 1..5;
s:real; {s-локальная переменная}
Begin
s:=0;
For i:=1 To 5 Do
s:=s+sqr(v[i]); {вычисление суммы квадратов s}
ddd:=sqrt(s); {ddd - длина вектора v}
End;
Begin
CLRSCR;
For i:=1 To 5 Do
Begin
write(‘Введите a[‘,I,’]:’);
readln(a[i]);
write(‘Введите b[‘,I,’]’);
readln(b[i]);
s[i]:=a[i]+b[i];
r[i]:=a[i]-b[i];
End;
ds:=ddd(s);
writeln(‘Длина суммы векторов равна ’, ds:7:3 );
dr:=ddd(r);
writeln(‘Длина разности векторов равна ’, dr:7:3);
readln;
End.
Тестирование функции выполнить самостоятельно (можно воспользоваться примером следующего задания.
Задание 2 (использование функции). Вычислить и вывести среднее арифметическое элементов каждого столбца матрицы размером 2 на 3, состоящей из вещественных чисел. Вычисление среднего арифметического элементов любого столбца матрицы оформить в виде функции. Организовать ввод элементов матрицы по строкам.
Решение.
1. Описание алгоритма или построение схемы алгоритма выполнить самостоятельно.
2. Написание программы
Uses
crt;
Type
row=1…2;
col=1…3;
matr=Array[row, col]of Real;
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 |


