![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 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. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
процедуры и функции | 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 |