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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.06.2011, 16:16   #1
Luckyman
Пользователь
 
Регистрация: 15.02.2011
Сообщений: 11
По умолчанию Процедуры и функции

Всем привет! Нужно написать программу на Паскале с использование процедуры и функции...

В массиве В (20) определить элементы, делящиеся на 4 без остатка, и сформировать из них новый массив С, подсчитав количество таких элементов и минимальный и максимальный среди них.

Вот рабочий код с оформлением,но,повторюсь, нужно через процедуру и функцию....
Код:
program Zadanie;
uses crt;
var
error, m, i, N, z: integer;
max, min: integer;
ch: char;
B,C: array [1..20] of integer;
d,g:byte;
byk:string[10];
Label L1,L2;
begin
clrscr;
textbackground(black);
textcolor(white);
window(15,3,75,25);
writeln('Вашему вниманию представляется программа,');
writeln('которая определяет в массиве элементы,');
writeln('делящиеся на 4 без остатка,');
writeln('а так же:');
writeln('определяет количество этих элементов');
writeln('и ищет минимальный и максимальный среди них');
textcolor(red);
writeln('');
writeln('ВНИМАНИЕ!');
writeln('1.Размерность данного массива должна быть');
writeln('в интервале от 2 до 100');
writeln('2.Элементы - целые числа от -10000 до 10000!');
writeln('');
textcolor(white);
writeln('Программу составил студент');
writeln('ВУЗ');
writeln('ФИО');
textcolor(green);
writeln('г.Москва, 12.11.2010');
gotoxy(24,21);
textcolor(white);
write('Нажмите любую клавишу...');
ch:=readkey;
L1:
clrscr;
d:=wherex;
g:=wherey;
write('Введите размерность масива в интервале 2 дo 100: ');
repeat
readln(byk);
val(byk,n,z);
if (z<>0) or (n<2) or (n>100) then
begin
writeln('Повторите ввод размерности массива (2..100)');
gotoxy(d+49,g);
writeln(' ');
gotoxy(d+49,g);
end;
until (z=0) and (n>=2) and (n<=100);
writeln(' ');
writeln('Ваш массив: ');
for i:=1 to n do
begin
repeat
write('B(',i,')=');
writeln(' ');
gotoxy(d+5,wherey-2);
readln(byk);
val(byk,B[i],z);
if (z<>0) or (B[i]<=-10000) or (B[i]>=10000) then
begin
writeln('Повторите ввод элемента (-10000..10000)');
gotoxy(d,wherey-2);
end;
until (z=0) and (B[i]>-10000) and (B[i]<10000)
end;
{Обработка массива}
m:=0;
for i:= 1 to n do
begin
if B[i] mod 4 = 0 then
begin
m := m+1; {Кол-во элементов нового массива}
C[m]:=B[i];
if m=1 then
begin
min:=C[m];
max:=C[m];
end
else
begin
if C[m]<min then min:=C[m]
else
if C[m]>max then max:=C[m];
end;
end;
end;
{Конец обработки массива}
gotoxy(d+30,g+2);
textcolor(red);
writeln('Числа, делящиеся на 4: ');
for i:=1 to m do
begin
gotoxy(d+30,g+i+2);
writeln('C[',i,']=',C[i]);
end;
textcolor(green);
gotoxy(d,g+n+3);
writeln('Количество элементов делящихся на 4 = ',m);
writeln('Минимальный = ',min);
writeln('Максимальный = ',max);
writeln('');
writeln('');
writeln('Хотите ли вы отсортировать еще один массив? (Y-да, N-нет)');
L2:
case readkey of
#89:goto L1;
#121: goto L1;
#78: exit;
#110: exit;
end;
goto L2;

end.
Luckyman вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
процедуры и функции Alexgv Паскаль, Turbo Pascal, PascalABC.NET 8 30.01.2011 14:14
процедуры и функции Serg12 SQL, базы данных 5 25.02.2010 15:55
Процедуры и функции Алeксандр Паскаль, Turbo Pascal, PascalABC.NET 1 22.01.2009 04:54
Процедуры и функции 11111 Помощь студентам 10 26.11.2007 15:06