Алгоритмический язык Паскаль

Вопросы - Компьютеры, программирование

Другие вопросы по предмету Компьютеры, программирование

µния параметра цикла целые и меняются с шагом +1, -1.

Оператор цикла с постусловием.

REPEAT

- тело цикла

UNTIL ;

где P1, P2, …PN - любые операторы.

По этому оператору выполняется "тело цикла", а затем проверяется не будет выполнено.

Необходимо помнить: если сразу выполнилось, цикл будет пройден один раз.

Вычислить:y = a sin (x ) , x = , =0.2

program fun;

var

y, a, x: real;

begin

x: =0; read (a)

 

repeat

y: = a *sin (x); writeln (y, x); x: = x + 0.2;

until x>1;

end.

Действия, которые подчеркнуты, необходимы для организации цикла.

Оператор цикла с предусловием.

WHILE DO P;

Где P - простой или составной оператор.

По этому оператору проверяется и т. д.

Итак, P - выполняется до тех пор, пока выполняется .

Если условие ни разу не выполнилось, P - игнорируется, управление передается следующему оператору.

Вычислить:y = sin x, x, x, - ввести с клавиатуры.

Подсчитать среднее положительное и среднее отрицательное значение функции.

Program cikl;

var

y, x, x k, d x: real;

n, k: integer; SP, n - среднее и количество положительных значений.

SP, S0: real; S0, k - среднее и количество отрицательных значений.

begin

writeln ( введите x - начальное, x - конечное, d x - шаг);

read (x, x k, d x);

SP: =0; S0: = 0; n: =0; k: =0;

While x< = k x do.

P Составной оператор.

 

if n=0 then writeln (Отрицательные отсутствуют)

else writeln ( Средние отрицательные = , SP/n);

if k=0 then writeln ( Положительные отсутствуют )

else writeln ( Средние положительные = , S0/k);

end.

Массивы

Задача 1:

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

Program sum-prois;

uses crt;

const

n = 100;

var

a: array [1…n] of real;

n, k, i: integer;

p, s: real;

begin

clrscr; s: = 0; p: =1;

writeln (введите размер массива); readln (nk);

writeln (введите элемент массива);

for i:=1 to nk do

readln (a[i] );

for i:=1 to nk do

begin

s:= s + a[ i ];

p:= p * a[ i ];

end;

writeln (Сум. = , s, Произ. = , p);

end.

Необходимо подготовить ячейки:

  1. при накапливании суммы - s=0
  2. при подсчете произведения - p=1.

Задача рассчитана на обработку массива с максимальным размером 100 элементов (n=100).

Конкретный размер массива вводится с клавиатуры (nk).

При каждом прохождении через цикл с клавиатуры вводится только один элемент массива. Два цикла for можно было объединить в один.

Двумерные массивы.

Двумерный массив можно представить в виде матрицы..

Описание двумерных массивов:

a - имя массива;

n, m - количество строк и столбцов в массиве.

Размер массива - nm.

a[i, j] - элемент стоящий на пересечении i-ой строки и j-го столбца.

Каждый элемент определяется двумя индексами.

a[i, i] - элементы главной диагонали.

a[i, 2] - элементы второго стлбца.

Задача 1.

Составить программу подсчета суммы элементов над главной диагональю в двумерном массиве.

Program matrix;

const

n=10;

m=10;

var

a: array [1…n, 1…m] of real;

i, j: integer; n, m: integer;

s: real;

begin s:=0;

writeln ( введите размер массива m, n);

readln (n, m);

{Ввод массива:}

for i:=1 to n do

for j:=1 to m do

readln (a[i, j]);

 

for i:=1 to n do

for j:=i to m do

s: s+a[i, j];

writeln(s=, s);

end.

Для ввода элементов массива используются вложенные циклы.

i - параметр внешнего цикла;

j - параметр внутреннего цикла;

i - меняется медленнее j.

 

Элементы массива необходимо вводить по строкам.