litceysel.ru
добавить свой файл
1



МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ ИНСТИТУТ ЭЛЕКТРОНИКИ И МАТЕМАТИКИ

( ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ)


Лабораторная работа № 1

Тема "Одномерные массивы"


Вариант №11


Определить сумму значений элементов массива. Рассматривать элементы,

Расположенные между первым и последним элементами массива с нулевым значением.


Молоствов Илья С-11


Москва 2005

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

Тема "Одномерные массивы"

1. Постановка задачи

Дано. Одномерный массив целых чисел. Количество элементов в массиве не более 20.

Требуется. Определить сумму значений элементов массива. Рассматривая элементы,

расположенные между первым и последним элементами массива с нулевым значением.

Связь. Присвоить переменной i (текущий номер элемента массива) начальное значение, равное 0. Присвоить переменной Summa (сумма элементов массива, расположенных между первым и последним элементами массива с нулевым значением) значение, равное 0.

Посчитать значение элемента Summa (сумма элементов массива, расположенных между первым и последним элементами массива с нулевым значением)

Если Аi<>0, где - Аi - значение i-го элемента массива А, то:


Если Аi =0, то присвоить переменной значение i.

После окончания нахождения элементов массива с нулевым значением:

1. При n>=1 и n<=20: посчитать сумму значений элементов расположенных между первым и последним элементами с нулевым значениями

2. При n<1 или n>20: вывести на экран ''Ошибка! Число элементов массива от 1 до 20'' .


2. Внешняя спецификация

Назначение. Определить сумму значений элементов массива. Рассматривать элементы,

Расположенные между первым и последним элементами массива с нулевым значением.

Входные данные.

n- количество элементов массива (целое),

a1,.. .аn - значения элементов массива (целые).


Выходные данные.

1. Вид экрана после выполнения программы:


Laboratornaya rabota 1

Molostvov Ilya

Gruppa С-11

Variant 11

Opredelt summu znachenii elementov massiva raspologennich megdu pervim i poslednim elementami s nulevim znacheniem

Kolichestvo elementov massiva-celoe chislo <=20

V ishodnom massive elementov

Ishodnii massiv

1>2> ... n>

Summa elementov massiva raspologennich megdu pervim i poslednim elementami s nulevim znacheniem <..>





  1. Аномалии входных данных:

При n<1 или n>20


Laboratornaya rabota 1

Molostvov Ilya

Gruppa С-11

Variant 11

Opredelt summu znachenii elementov massiva raspologennich megdu pervim i poslednim elementami s nulevim znacheniem

Kolichestvo elementov massiva-celoe chislo <=20

ERROR! chislo elementov massiva ot 1 do 20



Между нулями нет чисел:

Laboratornaya rabota 1

Molostvov Ilya

Gruppa С-11

Variant 11

Opredelt summu znachenii elementov massiva raspologennich megdu pervim i poslednim elementami s nulevim znacheniem

Kolichestvo elementov massiva-celoe chislo <=20

V ishodnom massive elementov

Ishodnii massiv

1>2> ... n>

megdu nuliami net chisel




В массиве один 0


Laboratornaya rabota 1

Molostvov Ilya

Gruppa С-11

Variant 11

Opredelt summu znachenii elementov massiva raspologennich megdu pervim i poslednim elementami s nulevim znacheniem

Kolichestvo elementov massiva-celoe chislo <=20

V ishodnom massive elementov

Ishodnii massiv

1>2> ... n>

V massive vsego odin 0



В массиве нет нулей:


Laboratornaya rabota 1

Molostvov Ilya

Gruppa С-11

Variant 11

Opredelt summu znachenii elementov massiva raspologennich megdu pervim i poslednim elementami s nulevim znacheniem

Kolichestvo elementov massiva-celoe chislo <=20

V ishodnom massive elementov

Ishodnii massiv

1>2> ... n>

V massive net dvuch 0



3. Алгоритм решения задачи

Алгоритм " Определить сумму значений элементов массива. Рассматривать элементы,


Расположенные между первым и последним элементами массива с нулевым значением."

Внутренние переменные

n,i : целое

i, j, k, c, m: целые

Summa: целое

А [1 .. 20] : массив : целое

Начало

Вывод (' Laboratornaya rabota 1 ')

Вывод ('Molostvov Ilya’)

Вывод ('Gruppa С-11’)

Вывод ('Variant 11’)

Вывод (' Opredelt summu znachenii elementov massiva raspologennich megdu pervim i poslednim elementami s nulevim znacheniem ')

Вывод (‘Kolichestvo elementov massiva-celoe chislo <=20')

Ввод (n)

Если (n>=1) и (n<=20) то

Вывод (‘Vvedite elementi massiva')

Цикл - для i от 1 до n

Вывод ('А[', I, '] =')

Кцикл

Вывод ('V ishodnom massive', n, 'elementov')

Вывод ('Ishodnii massiv')

i:=1

Цикл - пока (a[i]<>0) и (i
i:=i+1

Если i=n то

Вывод(‘V massive net dvuh 0’);

Если i<>n то

k:=i;

j:=N;

цикл – пока (a[j]<>0) и (j>i)

j:=j-1;

если j=i то

Вывод (‘V massive vsego odin 0’);

Если i<>j то

c:=j;

если k+1<>c то

summa:=0;

Цикл - для m от (к+1) до (с-1)

Summa:=summa+a[m];

Вывод(summa elementov massiva raspologennich megdu pervim i poslednim elementami s nulevim znacheniem ‘,summa,’);

Кцикл

Иначе

Вывод(‘megdu nulyami net chisel’);

Кцикл

Кцикл

Иначе

Вывод ('ERROR! chislo elementov massiva ot 1 do 20');

Конец.


4. Текст программы на языке Паскаль

Program Laboratornaya_1


Uses Crt;

var

n:integer;

a:Array[1..20] of integer;

i,j,k,c,m:integer;

summa:integer;

begin

ClrScr;

Writeln('Laboratornaya rabota 1');

Writeln('Molostvov Ilya');

Writeln('Gruppa c-11');

Writeln('Variant 11');

Writeln('Opredelt summu znachenii elementov massiva raspologennich megdu pervim i poslednim elementom s nulevim znacheniem');

Writeln('Kolichestvo elementov massiva-celoe chislo <=20');

Readln(n);

If (n>=1) and (n<=20) then

begin

writeln('znachenia elementov massiva - celie chisla');

writeln('Vvedite elementi massiva');

for i:=1 to n do

begin

Write('a[',i,']=');

Readln(a[i]);

end;

Writeln('v iskhodnom massive ',n,' elementov');

Writeln('iskhodnii massiv');

for i:=1 to n do

Write(a[i]:4);

Writeln;


i:=1;

While (a[i]<>0) and (i
i:=i+1;

if i=n then

writeln('V massive net dvuch 0');

if i<>n then

begin

k:=i;

j:=N;

while (a[j]<>0) and (j>i) do

j:=j-1;

if j=i then

writeln('V massive vsego odin 0');

if i<>j then

begin

c:=j;

if k+1<>c then

begin

summa:=0;

For m:=(k+1) to (c-1) do

summa:=summa+A[m];

Writeln(summa elementov massiva raspologennich megdu pervim i poslednim elementami s nulevim znacheniem ‘,summa,’);

end

else

writeln('megdu nuliami net chisel');

end;

end;

end

else


Writeln('ERROR! chislo elementov massiva ot 1 do 20');

Readln;

end.