Программирование циклических алгоритмов 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Программирование циклических алгоритмов



С постусловием

 

Стpуктуpа оператора цикла с постусловием

REPEAT <оператор 1>;

(повторять)

<оператор 2>;

...

<оператор N>

UNTIL <условие окончания цикла>;

(до тех поp, пока)

Пример. Вычислить 15 значений функций

y1(x) = tg(x); и y2(x) = ctg(x) при a ≤ x ≤ b,

a=0.6*Pi, b=0.7*Pi.

Для вычислений разработана следующая программа:

Program Lab5;

Const n = 14;

a = 0.6*Pi;

b = 0.7*Pi;

Var x, y1, y2, dx: real;

Begin

dx:=abs((a-b)/n);

x:=a;

Repeat

y1:=sin(x)/cos(x);

y2:=1/y1;

writeln('x=', x:6:4,' y1= ', y1:7:4,' y2=', y2:7:4);

x:=x+dx

Until x>b;

End.

Пример 2. Вычислить сумму элементов s = 1+1/4+1/9+1/16+... c точностью до

E = 0.00001

 

PROGRAM sum;

CONST

E=0.00001; {точность}

VAR

s,r: REAL; {s - сумма, r – слагаемое}

i:INTEGER; {i - счетчик слагаемых}

BEGIN

s:=0;

i:=1;

REPEAT

r:=1/sqr(i); {вычисление слагаемого}

s:=s+r;

i:=i+1 {счет слагаемых}

UNTIL r<E; {сравнение слагаемого с Е}

WRITELN ('Сумма=',s:9:5); {вывод суммы}

END.

 

Задание 1 (программа 5_1)

Модифицировать программу 3_2 для вычис­ления функций F1(x) и F2 (x) с применением опе­ратора цикла с постусловием. Выполнить ее и сравнить результа-ты с полученными ранее.

 

 

Лабораторная работа 6

Программирование алгоритмов обработки одномерных массивов

Цель работы: научиться разрабатывать и отлаживать программы с использованием регулярных типов (векторов).

Массив - упорядоченная структура однотипных данных, хранящихся последовательно.

Массив обязательно имеет размеры, определяющие, сколько в нем хранится элементов. Описывается в разделе TYPE (или VAR). Структура описания одномерного массива:

<имя> = ARRAY[диапазон _ индексов] OF <базовый _ тип>;

Диапазон указывает значения индексов первого и последнего элементов в массиве.

 

Пример. Найти значение и номер наименьшего элемента в одномерном массиве. При задании элементов исходного массива типизированной константой используется следующая программа:

 

Program lr6_1;

const a: array[1..10] of integer=(5,2,7,1,8,3,4,5,6,6);

var i, min, n: integer;

Begin

min:=a[1]; n:=1;

for i:=2 to 10 do

if a[i]<min then begin

min:=a[i];

n:=i;

end;

writeln('минимальный элемент равен ',min, ' n=',n);

End.

Если элементы массива вводятся с клавиатуры, то текст программы изменится:

program lr6_2;

var a: array[1..10] of integer;

i, min, n: integer;

Begin

read(a[1]);

min:=a[1]; n:=1;

for i:=2 to 10 do begin

read(a[i]);

if a[i]<min then begin

min:=a[i]; n:=i;

end;

end;

writeln('минимальный элемент равен ', min, ' n=',n);

End.

Задание 1

Написать и отладить прог­рамму для одной из следующих задач.

1. Дан массив из N чисел (8<N<12). Вычислить их среднее геомет­рическое значение.

2. Дан массив из N чисел (10<N<15). Найти максимальное значение.

3. Дано 20 чисел. Найти их среднее арифметические значение.

4. Дана последовательность из 15 целых чисел. Определить коли­чество отрицательных чисел в ней.

5. Дано 15 целых чисел. Найти минимальное из них.

6. Дан массив из N чисел (8<N<12). Вычислить сумму элементов с нечетными индексами.

7. Дано 10 вещественных чисел. Вычислить разность между макси­мальным и минимальным из них.

8. Дан целый массив из 10 чисел. Найти максимальный отрицательный элемент.

9. Задан массив из восьми вещественных чисел. Определить количество положительных чисел.

10. Дан массив из 10 целых чисел. Найти сумму четных элементов этого массива.

11. Дан массив из 12 вещественных чисел. Найти сумму тех элементов этого массива, индексы которых чётные.

12. Дано 10 целых чисел. Найти произведение отрицательных чисел.

 

 

Лабораторная работа 7

Программирование алгоритмов обработки двумерных массивов

Цель работы: научиться разрабатывать и отлаживать программы с использованием матриц.

 

Описание двумерного массива (матрицы):

TYPE

<имя> = ARRAY[диап1,диап2] OF <базовый_тип>;

где [диап] - диапазон для одного индекса.

Пример. Вычислить суммы элементов в столбцах двумерного числового массива

А размером [1..3,1..4].

Текст программы:

Program lr7_1;

CONST a: array[1..3,1..4] of integer = ((1,2,3,4),(1,2,3,4),(1,2,3,4));

VAR

s: array[1..4] of integer; {массив сумм}

i, j: integer;

BEGIN

for j:=1 to 4 do

begin

s[j]:=0;

for i:=1 to 3 do

s[j]:=s[j]+a[i,j];

write(' s[',j,']=',s[j])

end;

END.

Задание 1 (программа 7_1)

1. Даны матрицы A,B: array [1..4,1..4] of real. Вычислить матрицу С поэлементным сложением соответствующих элементов матриц А и В.

2. Даны матрицы A,B: array [1..5,1..5] of real. Вычислить матрицу С поэлементным вычитанием соответствующих элементов матриц А и В.

3. Дана матрица B: array [1..5,1..5] of integer. Элементы главной диагонали этой матрицы заменить на 0.

4. Даны матрица A: array [1..4,1..4] of real и константа К. Вычис­лить матрицу С=А*К.

5. Дана матрица A: array [1..6,1..6] of integer и переменная Х. Нечётные элементы матрицы А заменить на Х.

6. Дана двумерная матрица D(5;6) вещественных чисел. Найти сумму тех элементов матрицы, индексы которых чётные.

7. Дана двумерная матрица J(5;7) целых чисел. Найти произведение чётных элементов этой матрицы.

8. Дана двумерная матрица J(5;7) вещественных чисел. Найти произведение отрицательных элементов этой матрицы.

9. Дана двумерная матрица J(5;7) вещественных чисел. Найти сумму отрицательных элементов этой матрицы.

10. Дана квадратная матрица J(6;6) натуральных чисел. Найти произведение элементов главной диагонали этой матрицы.

11. Дана квадратная матрица J(6;6) натуральных чисел. Найти сумму элементов главной диагонали этой матрицы.

12. Дана двумерная матрица K(6;7) целых чисел. Найти сумму элементов пятой строки этой матрицы.

 



Поделиться:


Последнее изменение этой страницы: 2016-12-16; просмотров: 226; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.141.41.187 (0.015 с.)