Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.06.2010, 20:12   #1
L3zh1Y
Пользователь
 
Регистрация: 12.05.2010
Сообщений: 34
По умолчанию Одномерный массив, с меню.

Дан одномерный массив целых чисел, произвольной длинны. Заполните массив с клавиатуры. Используя оператор выбора, создайте меню, в котором при нажатии на клавишу производятся действия:
1 - выполнить произведение положительных элементов
2 - найти ол-во эл-в, лежащих в диапазоне от 1 до 2.5
3 - поменять местами первую и вторую половины массива.
___

Код написал, но после вывода массива программа просто закрывается. Помогите исправить.

Uses crt;
Label 1;
var a:array[1..100] of integer;
s,i,n,b:integer;
element:integer;
o,y:char;
BEGIN
clrscr;
textcolor (green);
writeln;
1:write ('Ukazhite razmer massiva: ');readln(n);
for i:=1 to n do begin
write ('Vvedite a[',i,'] element ');readln(a[i]);
end;
writeln;
for i:=1 to n do begin
write (a[i]:4);
end;
writeln;
writeln('1 - Vy4islit proizvedenie polozhitelnyx elementov');
writeln('2 - Nayti kol-vo elementov massiva lezhashix v diapozone o 1 do 2,5');
writeln ('3 - pomenyat mestami pervuyu i vtoroyu poloviny massiva');
case b of
1:begin
for i:= 1 to n do begin
if a[i]>0 then s:=s*a[i];
end;
write ('Proizvedenie - ',s);
end;
2: begin
if (a[i]>=1) and (a[i]<=2.5) then write (a[i]:4);
end;
3: begin
for i:= 1 to (n div 2) do begin
element:=a[i];
a[i]:=a[n-i+1];
a[n-i+1]:=element;
end;
write ('Xotite prodolzhit rabotu? "Y"-yes "N"-No');readln (o);
if o=y then goto 1
else
readkey;
END;end;end.
L3zh1Y вне форума Ответить с цитированием
Старый 02.06.2010, 21:15   #2
ROMA2PVT
ТАМБОВСКИЙ ВОЛК.
Участник клуба
 
Аватар для ROMA2PVT
 
Регистрация: 16.03.2010
Сообщений: 1,354
По умолчанию

Код:
Uses crt;
Type
   mas=array[1..100] of integer;
var
a:mas;
pr,i,n,b,l,x,kol:integer;
key:char;

 procedure proizv(Var kl:mas);
 begin
 pr:=1;
for i:= 1 to n do
if kl[i]>0 then
begin
pr:=pr*kl[i];
end;
write ('Proizvedenie:=',pr);
end;

procedure kolich(Var kl:mas);
begin
kol:=0;
for i:= 1 to n do
if (kl[i]>=1) and (kl[i]<=2.5) then
begin
inc(kol);
end;
write('Количество элементов в диапазоне от 1 до 2.5:=',kol);
end;

procedure smena(Var kl:mas);
begin
l:=n div 2;
if n mod 2<>0 then
Inc(l);
for i:=1 to n div 2 do
    begin
      x:=kl[i];
      kl[i]:= kl[i+l];
      kl[i+l]:=x;
    end;
writeln('Результирующий массив: ');
for i:=1 to n do
begin
write (kl[i]:2,' ');
end;
writeln;
end;

BEGIN
clrscr;
textcolor(green);
writeln;
write('Ukazhite razmer massiva: ');
readln(n);
for i:=1 to n do
begin
write('a[',i,']:=');
readln(a[i]);
end;
writeln;
writeln('Исходный массив: ');
for i:=1 to n do
begin
write(a[i]:2,' ');
end;
writeln;
writeln('Меню':50);
writeln('1 - Vy4islit proizvedenie polozhitelnyx elementov');
writeln('2 - Nayti kol-vo elementov massiva lezhashix v diapozone o 1 do 2,5');
writeln('3 - pomenyat mestami pervuyu i vtoroyu poloviny massiva');
writeln('4 - Vixod');
writeln;
repeat
write('ВАШ ВЫБОР: ');
readln(b);
case b of
1: proizv(a);
2: kolich(a);
3: smena(a);
4: exit;
end;
writeln;
write('Повторить (Yes/No)?');
  readln(key);
  Until UpCase(key)<>'Y';
end.
にんじゃ
ROMA2PVT вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Одномерный массив forl Помощь студентам 3 11.05.2011 12:06
"меню" одномерный массив процедуры qwerty98765 Помощь студентам 9 21.04.2010 06:24
Одномерный массив. Q basic - Построить новый массив из элементов исходного ,которые больше P. Marishkaa Помощь студентам 2 12.01.2010 16:54
Двумерный массив, одномерный массив. Branbal Помощь студентам 14 18.11.2009 12:40
одномерный массив Кирилл17 Помощь студентам 5 22.12.2008 00:13