Задача с массивом..., Определить эл-ты делящиеся на 4... |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Задача с массивом..., Определить эл-ты делящиеся на 4... |
ghost |
Сообщение
#1
|
Новичок Группа: Пользователи Сообщений: 23 Пол: Мужской Репутация: 0 |
В массиве B(20) определить элементы, делящиеся на 4 без остатка, и сформировать из них новый массив C, подсчитав количество таких
элементов и минимальный и максимальный среди них. Помогите решить задачу, пожалуйста. |
Atos |
Сообщение
#2
|
Прогрессор Группа: Пользователи Сообщений: 602 Пол: Мужской Реальное имя: Михаил Репутация: 9 |
У-у, какая сложная и непонятная задача!
ghost, а у тебя самого какие-нибудь мысли есть по поводу решения? Может быть ты даже какие-нито книги по Паскалю читать пробовал? |
Atos |
Сообщение
#3
|
Прогрессор Группа: Пользователи Сообщений: 602 Пол: Мужской Реальное имя: Михаил Репутация: 9 |
Ладно, шутю...
Код type TElem=byte; Arr=array [1..20] of TElem; procedure Obrabotka(B:Arr; var C:Arr; var max,min,kol:TElem); var i:TElem; begin min:=0; max:=0; kol:=0; for i:=1 to 20 do begin if (B[i]<>0) and ((B[i] mod 4)=0) then begin if B[i]>max then max:=B[i]; if B[i]<min then min:=B[i]; inc(kol); C[kol]:=B[i]; end; end; end; var B,C:Arr; i,max,min,kol:Telem; begin randomize; for i:=1 to 20 do B[i]:=random(100); writeln('array B:'); for i:=1 to 20 do write(B[i],' '); writeln(' '); Obrabotka(B,C,max,min,kol); if kol=0 then writeln('No exist elements that is division of 4') else begin writeln('array C:'); for i:=1 to kol do write(C[i],' '); writeln(' '); writeln('min elements equal ',min); writeln('max elements equal ',max); writeln('in array C ', kol ,' elements'); end; readln; end. |
Лита |
Сообщение
#4
|
Новичок Группа: Пользователи Сообщений: 31 Пол: Женский Репутация: 0 |
Цитата(ghost @ 28.10.04 15:04) В массиве B(20) определить элементы, делящиеся на 4 без остатка, и сформировать из них новый массив C, подсчитав количество таких элементов и минимальный и максимальный среди них. Код Uses crt; const n=20; Var b,c:array [1..n] of integer; min,max,i,j:integer; BEGIN clrscr; Randomize; For i:=1 to n do begin b[i]:=random(40); write(b[i]:5); end; j:=0; For i:=1 to n do begin If b[i] mod 4=0 then begin inc(j); c[j]:=b[i]; If j=1 then begin max:=c[j]; min:=c[j]; end else begin If c[j]<min then min:=c[j]; If c[j]>max then max:=c[j]; end; end; end; writeln; For i:=1 to j do write(c[i]:4); writeln; writeln('vsego elementov ',j); writeln('max=',max,' min=',min); readln; end. -------------------- Что нам стоит мир пострить? Нарисуем - будем жить...
|
Лита |
Сообщение
#5
|
Новичок Группа: Пользователи Сообщений: 31 Пол: Женский Репутация: 0 |
Цитата(Atos @ 28.10.04 15:33) Ладно, шутю... а если в массиве нет отрицательных элементов? а вы минимальному присвоили ноль, а потом сравниваете с ним элементы, делящиеся на 4, которые вовсе необязательно могут быть меньше нуля... -------------------- Что нам стоит мир пострить? Нарисуем - будем жить...
|
volvo |
Сообщение
#6
|
Гость |
Лита
Тогда так: Код min:=maxint; max:=-maxint; |
Лита |
Сообщение
#7
|
Новичок Группа: Пользователи Сообщений: 31 Пол: Женский Репутация: 0 |
Цитата(volvo @ 28.10.04 15:54) Код min:=maxint; max:=-maxint; ну можно и так... <_< так даже попроще... :yes: -------------------- Что нам стоит мир пострить? Нарисуем - будем жить...
|
Atos |
Сообщение
#8
|
Прогрессор Группа: Пользователи Сообщений: 602 Пол: Мужской Реальное имя: Михаил Репутация: 9 |
Согласен, недосмотрел...
|
ghost |
Сообщение
#9
|
Новичок Группа: Пользователи Сообщений: 23 Пол: Мужской Репутация: 0 |
Спасибо всем, что помогли=)
Добавлено (2.11.04 14:00): Как будет выглядеть блок-схема к этой проге? |
Гость_Лита |
Сообщение
#10
|
Гость |
Цитата(ghost @ 2.11.04 15:00) Как будет выглядеть блок-схема к этой проге? ну как все обыкновенные блок-схемы... :D даже если я ее нарисую, как я ее тут размещу? |
APAL |
Сообщение
#11
|
Смотрю... Группа: Пользователи Сообщений: 1 055 Пол: Мужской Реальное имя: Пшеничный Алексей Анатольевич Репутация: 6 |
Цитата(Гость_Лита @ 2.11.04 16:16) даже если я ее нарисую, как я ее тут размещу? Ничего смешного. У нас есть возможность вставки рисунков. В крайнем случае можно картинку закачать в файловый архив, который тоже у нас имеется. -------------------- |
ghost |
Сообщение
#12
|
Новичок Группа: Пользователи Сообщений: 23 Пол: Мужской Репутация: 0 |
Или можно на мыло мне кинуть.
|
Лита |
Сообщение
#13
|
Новичок Группа: Пользователи Сообщений: 31 Пол: Женский Репутация: 0 |
Цитата(APAL @ 2.11.04 15:27) Ничего смешного. У нас есть возможность вставки рисунков. хе... признаю свою оплошность, не посмотрела, что вошла под гостем... исправлюсь... -------------------- Что нам стоит мир пострить? Нарисуем - будем жить...
|
Лита |
Сообщение
#14
|
Новичок Группа: Пользователи Сообщений: 31 Пол: Женский Репутация: 0 |
Цитата(ghost @ 2.11.04 20:27) Или можно на мыло мне кинуть. Вот... щас попробую прикрепить блок-схему... только я немного изменила прогу... Код Uses crt; const n=20; Var b,c:array [1..n] of integer; min,max,i,j:integer; BEGIN clrscr; Randomize; For i:=1 to n do begin b[i]:=random(40); write(b[i]:5); end; j:=0; For i:=1 to n do begin If b[i] mod 4=0 then begin inc(j); c[j]:=b[i]; If j=1 then begin max:=c[j]; min:=c[j]; end else begin If c[j]<min then min:=c[j]; If c[j]>max then max:=c[j]; end; end; end; writeln; If k>0 then begin For i:=1 to j do write(c[i]:4); writeln; writeln('vsego elementov ',j); writeln('max=',max,' min=',min); end else writeln('Net elementov kratnih 4'); readln; end. Сообщение отредактировано: Лита - Эскизы прикрепленных изображений -------------------- Что нам стоит мир пострить? Нарисуем - будем жить...
|
ghost |
Сообщение
#15
|
Новичок Группа: Пользователи Сообщений: 23 Пол: Мужской Репутация: 0 |
Немного пределанная прога
Код Uses crt; const n=20; label e1, e2; Var b,c:array [1..n] of integer; min,max,i,j:integer; begin clrscr; gotoxy(18,10); writeln('текст'); gotoxy(18,11); writeln('текст '); gotoxy(18,12); writeln('текст'); readkey; e1: clrscr; Randomize; writeln ('Массив А'); For i:=1 to n do begin b[i]:=random(40); write(b[i]:5); end; gotoxy (1,4); writeln ('Массив C'); j:=0; For i:=1 to n do begin If b[i] mod 4=0 then begin inc(j); c[j]:=b[i]; If j=1 then begin max:=c[j]; min:=c[j]; end else begin If c[j]<min then min:=c[j]; If c[j]>max then max:=c[j]; end; end; end; writeln; If j>0 then begin For i:=1 to j do write(c[i]:4); writeln; writeln('Всего элементов ',j); writeln('max=',max,' min=',min); end else writeln('Нет элементов кратных 4'); e2: gotoxy(5,20); writeln('Вы хотите сделать ещё один массив? y/n'); gotoxy(25,21); case readkey of #89: goto e1; #121: goto e1; #78: exit; #110: exit; end; goto e2; end. А как сделать чтобы в этой проге массив А можно было задать самому, без рандомайза? Как в этом случае будет выглядет блок схема? |
APAL |
Сообщение
#16
|
Смотрю... Группа: Пользователи Сообщений: 1 055 Пол: Мужской Реальное имя: Пшеничный Алексей Анатольевич Репутация: 6 |
Цитата А как сделать чтобы в этой проге массив А можно было задать самому, без рандомайза? Как в этом случае будет выглядет блок схема? В блок-схеме замени b[i]:=random(40) на Readln(b[i]) -------------------- |
ghost |
Сообщение
#17
|
Новичок Группа: Пользователи Сообщений: 23 Пол: Мужской Репутация: 0 |
Ну а в самой проге что надо изменить?
И ещё, в первоначальной блок схеме после начала написано ввод n, m. Мы же ничего не вводим, зачем они? Сообщение отредактировано: ghost - |
APAL |
Сообщение
#18
|
Смотрю... Группа: Пользователи Сообщений: 1 055 Пол: Мужской Реальное имя: Пшеничный Алексей Анатольевич Репутация: 6 |
То что надо изменить я уже обозначил.
-------------------- |
Лита |
Сообщение
#19
|
Новичок Группа: Пользователи Сообщений: 31 Пол: Женский Репутация: 0 |
Цитата(ghost @ 12.11.04 12:48) Ну а в самой проге что надо изменить? И ещё, в первоначальной блок схеме после начала написано ввод n, m. Мы же ничего не вводим, зачем они? В самой программе меняешь тоже самое: b[i]:=random(40) меняешь на readln(b[i]); а с n,m я проперлась, осталось с другой блок-схемы. :p2: надо просту выкинуть этот кусок из нее Сообщение отредактировано: Лита - -------------------- Что нам стоит мир пострить? Нарисуем - будем жить...
|
ghost |
Сообщение
#20
|
Новичок Группа: Пользователи Сообщений: 23 Пол: Мужской Репутация: 0 |
После замены в проге, можно вводить самому массив А, но как-то странно он вводится. Я ввёл число, нажал enter и то число, которое я ввёл переносится на следующую строку.
Пример: 5 56 63 37 79 95 50 07 Как это исправить? И ещё, как сделать чтобы вводимые числа писались не в столбик, а в сторку? |
Текстовая версия | 24.12.2024 6:33 |