- •230201 Информационные системы и технологии
- •1.Линейные и разветвляющиеся вычислительные процессы.
- •2. Циклический вычислительный процесс. Структура «Повторение»
- •Арифметические циклы
- •Листинг программы.
- •3. Работа с одномерными массивами.
- •4. Работа с матрицами.
- •5. Работа со сложными структурами данных
Листинг программы.
Program P2;
{$APPTYPE CONSOLE}
Uses
SysUtils;
Var
X,U:extended;
I,N,Rezult::byte;
Zn:Word;
Begin
Write('X=');Readln(X);
Rezult:=0;
N:=1;
Repeat
Zn:=1;
For I:=1 to N do
Zn:=Zn*I;
Rezult:=Rezult+1;
U:=((N*X)/Zn);
N:=N+1;
Until U<0.007;
Writeln('Rezult=',Rezult);
Readln;
End.
Задания для самостоятельного выполнения по теме: Циклический вычислительный процесс.
-
Числовая последовательность называется рядом Фибоначчи, если она состоит из чисел 1, 1, 2, 3, 5, 8, 13… .Первые два члена ряда равны единице, затем каждый последующий равен сумме двух предыдущих. Определить десятый член последовательности.
-
Определить сумму первых десяти членов ряда Фибоначчи.
-
Определить среднее арифметическое первых двенадцати членов ряда Фибоначчи.
-
Найти произведение (Х+2)x(Х2+3)х…х(Х10+11).
-
Найти сумму первых двадцати элементов последовательности X, X/3, X/5, ... .
-
Найти частное (3+6+…+33)/(I+2+З...10).
-
Найти произведение (1+2+3+…+40)(5+10+15+...+70).
-
Дана последовательность Х2/2, Х2/6, Х2/10, ... Найти сумму элементов, абсолютные величины которых превышают 0,0005. Примечание: Х < 1.
-
Дана последовательность Х, Х5/4, Х9/8,Х13/12, …. Найти и напечатать сумму абсолютных величин элементов с 3 по 15-тый.
-
Найти и напечатать все целые числа, кратные 31, в интервале от -800 до +800 и подсчитать их количество.
-
Найти сумму ряда Х+X3/3+Х5/5+Х7/7+... суммирование прекратить, когда очередное слагаемое станет меньше 0.005 по абсолютной величине. Примечание: Х < 1.
-
Найти сумму ряда 1+Х+ Х2/2!+ Х3/Х3!+ Х4/4!+ ... Суммирование прекратить, когда абсолютная величина очередного слагаемого станет меньше 0,0003. Примечание: Х < 1.
-
Найти частное (1+3+5 + ...+100)/(101+103+...+200).
-
Дан расходящийся ряд Х+(3Х+1)+(5Х+2)+(7Х+3)+... Найти сумму элементов, абсолютные величины которых не превышают 500 .
-
Найти сумму (1х100)+(3x98)+(5х96)+...+(51x50).
-
Дана последовательность I , -3Х , 9Х2 , -27X3,… Найти сумму элементов, превышающих по абсолютной величине 0,006. Примечание: Х < 1.
-
Дана последовательность Х/2,Х3/4,Х6/8,... Найти и напечатать сумму элементов последовательности с 3 по I2-тый.
-
Составить программу нахождения ex ,используя формулу: ex = 1+X+X2/2!+X3/3!+...
-
Составить программу нахождения числа e ,используя формулу:
e = 1+1+1/2!+1/3!+... .
-
Составить программу нахождения sinx ,используя формулу:
sinx = X-X3/3!+ X5/5!-... .
-
Составить программу нахождения cosx ,используя формулу:
cosx = 1-X2/2!+X4/4!-... .
-
Найти все простые числа, не превосходящие заданного N>0.
-
Разложить заданное натуральное N на простые множители.
-
Заданы два натуральных числа М и N ( М<N ). Найти все простые числа, находящиеся в интервале от М до N.
3. Работа с одномерными массивами.
Массив – это упорядоченный набор фиксированного количества элементов. Все компоненты массива принадлежат к одному типу, называемому базовым типом для массива. Массив относится к однородным структурам с прямым доступом. То есть выделение конкретной компоненты массива производится по индексу массива. Индекс – это значение скалярного (упорядоченного) типа, определенного как тип индекса данного массива. Поэтому в любом языке определение типа массива ТArray фиксирует как базовый тип, так и тип индекса.
Чтобы задать тип, определяющий массив на языке Pascal, в разделе типов TYPE используется зарезервированное слово array (массив), после которого следует указать тип индекса (индексов) в квадратных скобках и далее после слова of (из) тип самих компонент. Массив с типом индексов TInd1, TInd2,…, TIndn и типом элементов TBase определяется следующим описанием:
TYPE TArray = array [ TInd1, TInd2,…, TIndn ] of TBase; .
Иногда при отладке задачи удобно заполнять массивы последовательностями случайных чисел. Язык Turbo Pascal содержит процедуру генерации случайного числа – Random(<число>). Данная процедура генерирует случайное целое число из диапазона [0..<число>]. Для настройки процедуры генерации случайного целого числа применяют процедуру Randomize. Рассмотрим задачу заполнения целочисленного одномерного массива случайными числами из диапазона [0..100]:
Пример 3.1
PROGRAM filling;
CONST
n=100;
TYPE vector=array[1..n] of integer;
VAR
i : integer;
mas : vector;
BEGIN
Randomize; {настройка датчика случайных чисел }
for i:=1 to n do { циклические действия будут}
{ выполнятся n раз }
mas[i]:=Random(100); { заполнение массива случайными числами}
for i:=1 to n do { циклические действия будут}
{ выполняться n раз }
write( mas[i],' '); { вывод элементов массива }
END.
Пример 3.2
Задан массив целых чисел. Определить количество чисел, которые делятся на 3 и на 7, показать эти числа.
Листинг программы
program Pr3;
{$APPTYPE CONSOLE}
uses
SysUtils;
Type
TMas=Array[1..20] of integer;
Var
Mas:TMas;
I,N,Sum:integer;
{Ввод элементов массива}
Procedure Input (N1:byte);
begin
For I:=1 to N1 do
Begin
write('Mas[',I,']=');Readln(Mas[I]);
End;
End;
{Вывод элементов, которые делятся на 3 или на 7 и определение их количества}
Procedure MyProc(N1:byte;Var Summa:integer);
Begin
Summa:=0;
For I:=1 to N1 do
If (Mas[I] mod 3=0)or(Mas[I] mod 7=0) then
Begin
Summa:=Summa+1;
Write(Mas[I]:6);
End;
Writeln;
Readln;
End;
Begin
Write('N=');readln(N);
Input(N);
MyProc(N,Sum);
{Вывод переменной Sum - количества элементов, которые делятся на 3 или на 7}
Writeln('Sum=',Sum);
Readln;
end.
Задания для самостоятельного выполнения по теме «Работа с одномерными массивами»
1.В массиве М 15 элементов. Найти величину и индекс максимального элемента.
2.В массиве М 10 элементов. Заменить отрицательные элементы, индексы которых не превосходят 7, нулями.
3.В массиве М 17 элементов. Найти сумму элементов, имеющих нечетные номера.
4.В массиве М 17 элементов. Найти и напечатать сумму отрицательных элементов, имеющих нечетные номера.
5.В массиве М 21 элемент. Найти и напечатать минимальный среди первых 10 элемент а его индекс.
6.В массиве М 21 элемент. Найти и напечатать номер и индекс элемента, минимального абсолютной величине.
7.В массиве М 17 элементов. Изменить знак у всех положительных элементов на обратный.
8.В массиве М 9 элементов. Заменить все элементы, начиная с 3-го, элементом М(1), взятым с обратным знаком.
9.В массиве М 14 элементов. Определить сумму его элементов с 4-го по 12-нй.
10.В массиве В 17 элементов. Заменить все положительные элементы начиная с десятого единицами.
11.В массиве А 15 элементов. Найти значение максимального из элементов, имеющих нечетные номера.
12.В массиве М 14 элементов. Изменить знак у всех положительных элементов, имеющих нечетные номера, на обратный.
13.В массиве М 15 элементов. Заменить его элементы, начиная с 3-го по 6-ый, двадцатым элементом, взятым с обратным знаком.
14.В массиве М 15 элементов. Определить количество элементов, расположенных между максимальным и минимальным.
15.В массиве М 15 элементов. Определить диапазон значений элементов массива (разность между максимальным и минимальным значениями).
16.В массиве М 16 элементов. Присвоить переменной N номер первого по порядку отрицательного элемента. При отсутствии отрицательных элементов, переменной N присвоить нулевое значение.
17.В массиве М 17 элементов. Увеличить положительные элемента на 10, отрицательные уменьшить на 2, а нулевые оставить без изменения.
18.В массиве М 21 элементов. Составить массив М1 из положительных, М2 - из отрицательных элементов исходного массива.
19.Составить массив М1 из элементов исходного массива М, расположив их в обратном порядке.
20.Массив М содержит 15 элементов. Найти максимальный элемент среди последних пяти.
21.Массив М содержит 20 элементов. Найти разность S1-S2 , где S1- сумма первых пяти элементов, S2 - сумма последних пяти.
22.Массив М содержит 16 элементов. Составить массив М1 такого же размера, в котором первый и последний элементы равны нулю, а каждый из остальных равен сумме соответствующего элемента исходного массива и двух соседних (предыдущего и последующего) элементов.
23.Массив М содержит 24 элемента. Из суммы элементов, имеющих нечетные индексы, вычесть произведение элементов с четными индексами.
24.Массив М состоит из 17 элементов. Составить сумму С+Р, где С - сумма положительных элементов, Р - произведение отрицательных.
25.Массив М состоит из 10 элементов. Составить массив М1, каждый элемент массива М1 вычислить как разность между соответствующим элементом массива М и средним арифметическим элементом этого массива.
26.Выяснить, имеются ли в массиве М, состоящем из 10 элементов, отрицательные элементы среди первых 5-ти. Если да, то переменной К присвоить значение I, если нет - 0.
27.Массив М состоит из 16 элементов. Выяснить, сколько элементов, начиная с первого, нужно сложить, чтобы сумма превысила 1000. Соответствующее значение присвоить переменной К. Если сумма всех элементов массива не достигает 1000, то переменной К присвоить значение 0.
28.Массив М содержит 10 элементов. Сравнить сумму элементов первой (С1) и второй (С2) половины массива. Если С1 > С2, то переменной К присвоить значение I, если нет, то К=0.
29.Массив М содержит 12 элементов. Поменять местами элементы, расположенные в первой и второй половинах массива.
30.Массив М содержит 15 элементов. Вели среди них имеется не менее 10 нулевых, переменной К присвоить значение 0, иначе К=1.