Основы программирования на языке Паскаль

writeln(' / ',a[1],'x+',b[1],'y+',c[1],'z=',d[1]);

writeln('система i ',a[2],'x+',b[2],'y+',c[2],'z=',d[2]);

writeln(' \ ',a[3],'x+',b[3],'y+',c[3],'z=',d[3]);

writeln('имеет решение: x=',x,' y=',y,' z=',z);

K: writeln('Будет ещё ур-е? да - "Y" , нет – любая клавиша ');

read(let);

if (let='Y') or (l

et='y') then goto N;

END.

Имеется одномерный массив. Необходимо определить сумму положительных элементов, номер последнего отрицательного элемента, количество отрицательных элементов массива.

Задача 1. Массив один и состоит из 7 элементов.

Задача 2. Массивов два, размерность первого – 7 элементов, второго – 5.

Задача 3. Количество массивов не ограничено, количество элементов в массивах произвольное, но не более 70.

Program Prim35; { массив 1 исостоитиз 7 элементов } label j; Type mas=array[1 7] of real; Var n,k,i,no:integer;

a:mas;

s:real; ch:char;

procedure prmas(a:mas;n:integer; Var s:real; Var k,no:integer);

Var i:integer;

Begin s:=0; k:=0; no:=0;

for i:=1 to n do Begin

if a[i]>=0 then s:=s+a[i] else Begin k:=i; no:=no+1;

end; end; end;

BEGIN

for i:=1 to 7 do Begin

writeln('ввести значение a[',i,']');

readln(a[i]); end;

prmas(a,7,s,k,no);

j: writeln('сумма положительных элементов =',s);

writeln('последний отрицательный элемент имеет N=' no);

writeln('количество отрицательных элементов =', k);

readln;

END.

Program Prim36; { массива 2, размерностьпервогомассива 7, второго – 5} label j; Type mas=array[1 7] of real; Var k,no,y:integer; s:real; ch:char; procedure prmas(n:integer; var s:real; var k,no:integer);

Var i:integer; a:mas;

Begin for i:=1 to n do Begin

writeln('введите ',i,' значение элемента массива');

readln(a[i]); end;

s:=0; k:=0; no:=0;

for i:=1 to n do begin

if a[i]>=0 then s:=s+a[i] else begin k:=i; no:=no+1;

end; end; end;

BEGIN prmas(7,s,k,no); y:=0;

j: writeln('сумма положительных элементов =',s);

writeln('последний отрицательный элемент имеет N=', no);

writeln('количество отрицательных элементов =', k); y:=y+1;

if y=1 then Begin prmas(5,s,k,no); goto j; end

else readln;

END.

Program Prim37; { массивыспеременнымиизмерениями, количествомассивовнеограничено} Type mas=array[1 70] of real; Var n,k,i,no,kol,r,j:integer; a,b:mas; s:real; ch:char; procedure prmas(n:integer; var s:real; var k,no:integer); var i:integer; a:mas;

begin for i:=1 to n do begin

writeln('введите ',i,' значение элемента массива ', j);

readln(a[i]); end;

s:=0; k:=0; no:=0;

for i:=1 to n do Begin

if a[i]>=0 then s:=s+a[i] else Begin k:=i; no:=no+1;

end; end; end;

BEGIN

writeln('задайтеколичествомассивов'); readln(kol);

for j:=1 to kol do Begin

writeln(' задайте размерность массива', j); readln(r);

prmas(r,s,k,no);

writeln(' сумма положительных элементов =',s);

writeln(' последний отрицательный элемент имеет N=', no);

writeln(' количество отрицательных элементов =', k); end;

readln;

END.

7.4. Локальные и глобальные описания объектов

Мы уже знаем, что программа – блок, т.е. раздел операторов, снабженный описаниями и имеющий заголовок. Вид блока-программы:

Program имя программы (возможны опции); {опции не обязательны}

Label …; {раздел описания меток}

Const …; {раздел описания констант}

Туре …; {раздел определения типов}

Var …; {раздел описания переменных}

Function …; Procedure …; {раздел описания функций и процедур}

BEGIN . END. {раздел операторов}.

Функции и процедуры, в свою очередь, также являются блоками:

Procedure имя (список входных формальных параметров);

Var (список выходных формальных параметров);

Label …;

Const …;

Туре …;

Var .;

function …;

procedure …;

разделы описаний

begin . end; {тело процедуры}

Таким образом, программа – всегда блок, в который могут быть вложены другие блоки.

Как один из вариантов, возможна следующая структура программы:

Program Prim38; { началоблока 1} label N,M; Const k=5.6; Type d=array[1 10] of integer; Var b,c:real; i,j:integer; z,y:d;

function f(f,b,c:real):real; { началоблока 2}

begin f:=1; end; {конецблока 2}

procedure proc(f,b,c:real; Var x,y,z:real); { началоблока 3}

label K,L;

var d,w,s:real;

function fp(a,b:real):real; { началоблока 4}

begin fp:=1; end; {тело fp, конецблока 4}

begin x:=1; y:=1; z:=1; end; {тело proc, конецблока 3}

BEGINb:=1; END. {тело основной программы, конец блока 1}

Таким образом, программа состоит из четырех блоков. Все имена меток, констант, типов, переменных, функции f и Рrос известны в блоке 1, поскольку они даны в его описании. Считается, что они описаны здесь локально.

В блоке 2 – function – описаний нет, поэтому своих собственных объектов этот блок не имеет. Формальные параметры не в счет, поскольку они служат только для описания алгоритма вычисления результата с именем f в функции f, а ячейки памяти для b, с, f здесь не выделяются. Однако в этом блоке можно использовать все объекты, которые описаны в блоке 1, так как блок 2 является составляющей частью блока 1. Иногда говорят, что имена объектов блока 1 описаны глобально для блока 2.

Аналогичная ситуация и с блоком 3 – Procedure Рrос. Для нее все объекты блока 1 являются глобальными, т.е. доступны. Кроме того, в блоке 3 имеются свои описанные здесь объекты – метки К, L, переменные d, W, 8, функция fp, которые могут быть использованы только в блоке 3 и не известны в блоках 1 и 2.

Как следствие возможно применение одинаковых имен в различных блоках (см. имя d). В блоке 1 d – массив. В блоке 3 (в Рrос) имеется свое d, которое является собственным в блоке 3 и представляет собой не массив, а ячейку памяти типа real.

Страница:  1  2  3  4  5  6  7  8  9  10  11  12  13  14  15 
 16  17  18  19  20  21  22  23  24  25  26  27  28  29  30 
 31 


Другие рефераты на тему «Программирование, компьютеры и кибернетика»:

Поиск рефератов

Последние рефераты раздела

Copyright © 2010-2024 - www.refsru.com - рефераты, курсовые и дипломные работы