Основы программирования на языке Паскаль
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.
Другие рефераты на тему «Программирование, компьютеры и кибернетика»:
Поиск рефератов
Последние рефераты раздела
- Основные этапы объектно-ориентированного проектирования
- Основные структуры языка Java
- Основные принципы разработки графического пользовательского интерфейса
- Основы дискретной математики
- Программное обеспечение системы принятия решений адаптивного робота
- Программное обеспечение
- Проблемы сохранности информации в процессе предпринимательской деятельности