Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методические материалы по программированию.doc
Скачиваний:
12
Добавлен:
03.11.2018
Размер:
635.9 Кб
Скачать

Листинг программы.

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, 1, 2, 3, 5, 8, 13… .Первые два члена ряда равны единице, затем каждый последующий равен сумме двух предыдущих. Определить десятый член последовательности.

  2. Определить сумму первых десяти членов ряда Фибоначчи.

  3. Определить среднее арифметическое первых двенадцати членов ряда Фибоначчи.

  4. Найти произведение (Х+2)x(Х2+3)х…х(Х10+11).

  5. Найти сумму первых двадцати элементов последовательности X, X/3, X/5, ... .

  6. Найти частное (3+6+…+33)/(I+2+З...10).

  7. Найти произведение (1+2+3+…+40)(5+10+15+...+70).

  8. Дана последовательность Х2/2, Х2/6, Х2/10, ... Найти сумму элементов, абсолютные величины которых превышают 0,0005. Примечание: Х < 1.

  9. Дана последовательность Х, Х5/4, Х9/8,Х13/12, …. Найти и напечатать сумму абсолютных величин элементов с 3 по 15-тый.

  10. Найти и напечатать все целые числа, кратные 31, в интервале от -800 до +800 и подсчитать их количество.

  11. Найти сумму ряда Х+X3/3+Х5/5+Х7/7+... суммирование прекратить, когда очередное слагаемое станет меньше 0.005 по абсолютной величине. Примечание: Х < 1.

  12. Найти сумму ряда 1+Х+ Х2/2!+ Х3/Х3!+ Х4/4!+ ... Суммирование прекратить, когда абсолютная величина очередного слагаемого станет меньше 0,0003. Примечание: Х < 1.

  13. Найти частное (1+3+5 + ...+100)/(101+103+...+200).

  14. Дан расходящийся ряд Х+(3Х+1)+(5Х+2)+(7Х+3)+... Найти сумму элементов, абсолютные величины которых не превышают 500 .

  15. Найти сумму (1х100)+(3x98)+(5х96)+...+(51x50).

  16. Дана последовательность I , -3Х , 9Х2 , -27X3,… Найти сумму элементов, превышающих по абсолютной величине 0,006. Примечание: Х < 1.

  17. Дана последовательность Х/2,Х3/4,Х6/8,... Найти и напечатать сумму элементов последовательности с 3 по I2-тый.

  18. Составить программу нахождения ex ,используя формулу: ex = 1+X+X2/2!+X3/3!+...

  19. Составить программу нахождения числа e ,используя формулу:

e = 1+1+1/2!+1/3!+... .

  1. Составить программу нахождения sinx ,используя формулу:

sinx = X-X3/3!+ X5/5!-... .

  1. Составить программу нахождения cosx ,используя формулу:

cosx = 1-X2/2!+X4/4!-... .

  1. Найти все простые числа, не превосходящие заданного N>0.

  2. Разложить заданное натуральное N на простые множители.

  3. Заданы два натуральных числа М и 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.