IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

3 страниц V  1 2 3 >  
 Ответить  Открыть новую тему 
> Задача с массивом..., Определить эл-ты делящиеся на 4...
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 23
Пол: Мужской

Репутация: -  0  +


В массиве B(20) определить элементы, делящиеся на 4 без остатка, и сформировать из них новый массив C, подсчитав количество таких
элементов и минимальный и максимальный среди них.
blink.gif
Помогите решить задачу, пожалуйста.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Прогрессор
****

Группа: Пользователи
Сообщений: 602
Пол: Мужской
Реальное имя: Михаил

Репутация: -  9  +


blink.gif У-у, какая сложная и непонятная задача!
ghost, а у тебя самого какие-нибудь мысли есть по поводу решения?
Может быть ты даже какие-нито книги по Паскалю читать пробовал?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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.


--------------------
Что нам стоит мир пострить? Нарисуем - будем жить...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Новичок
*

Группа: Пользователи
Сообщений: 31
Пол: Женский

Репутация: -  0  +


Цитата(Atos @ 28.10.04 15:33)
Ладно, шутю...

а если в массиве нет отрицательных элементов? а вы минимальному присвоили ноль, а потом сравниваете с ним элементы, делящиеся на 4, которые вовсе необязательно могут быть меньше нуля... blink.gif


--------------------
Что нам стоит мир пострить? Нарисуем - будем жить...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






Лита
Тогда так:

Код
min:=maxint;
max:=-maxint;
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Новичок
*

Группа: Пользователи
Сообщений: 31
Пол: Женский

Репутация: -  0  +


Цитата(volvo @ 28.10.04 15:54)
Код

min:=maxint;
max:=-maxint;

ну можно и так... <_< так даже попроще... :yes:


--------------------
Что нам стоит мир пострить? Нарисуем - будем жить...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Прогрессор
****

Группа: Пользователи
Сообщений: 602
Пол: Мужской
Реальное имя: Михаил

Репутация: -  9  +


huh.gif Согласен, недосмотрел...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Новичок
*

Группа: Пользователи
Сообщений: 23
Пол: Мужской

Репутация: -  0  +


Спасибо всем, что помогли=)

Добавлено (2.11.04 14:00):
Как будет выглядеть блок-схема к этой проге?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Гость






Цитата(ghost @ 2.11.04 15:00)
Как будет выглядеть блок-схема к этой проге?

huh.gif ну как все обыкновенные блок-схемы... :D
даже если я ее нарисую, как я ее тут размещу? huh.gif
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Смотрю...
*****

Группа: Пользователи
Сообщений: 1 055
Пол: Мужской
Реальное имя: Пшеничный Алексей Анатольевич

Репутация: -  6  +


Цитата(Гость_Лита @ 2.11.04 16:16)
даже если я ее нарисую, как я ее тут размещу?  huh.gif

Ничего смешного. У нас есть возможность вставки рисунков.
В крайнем случае можно картинку закачать в файловый архив, который тоже у нас имеется.


--------------------
Если что-то не делает того, что вы запланировали ему делать - это еще не означает, что оно бесполезно.
--------------------
Прежде, чем задать вопрос - Правила :: FAQ :: Поиск
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Новичок
*

Группа: Пользователи
Сообщений: 23
Пол: Мужской

Репутация: -  0  +


Или можно на мыло мне кинуть.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


Новичок
*

Группа: Пользователи
Сообщений: 31
Пол: Женский

Репутация: -  0  +


Цитата(APAL @ 2.11.04 15:27)
Ничего смешного. У нас есть возможность вставки рисунков.

хе... признаю свою оплошность, не посмотрела, что вошла под гостем...
исправлюсь...


--------------------
Что нам стоит мир пострить? Нарисуем - будем жить...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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.


Сообщение отредактировано: Лита -


Эскизы прикрепленных изображений
Прикрепленное изображение

--------------------
Что нам стоит мир пострить? Нарисуем - будем жить...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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.

А как сделать чтобы в этой проге массив А можно было задать самому, без рандомайза?
Как в этом случае будет выглядет блок схема?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #16


Смотрю...
*****

Группа: Пользователи
Сообщений: 1 055
Пол: Мужской
Реальное имя: Пшеничный Алексей Анатольевич

Репутация: -  6  +


Цитата
А как сделать чтобы в этой проге массив А можно было задать самому, без рандомайза? Как в этом случае будет выглядет блок схема?

В блок-схеме замени b[i]:=random(40) на Readln(b[i])


--------------------
Если что-то не делает того, что вы запланировали ему делать - это еще не означает, что оно бесполезно.
--------------------
Прежде, чем задать вопрос - Правила :: FAQ :: Поиск
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #17


Новичок
*

Группа: Пользователи
Сообщений: 23
Пол: Мужской

Репутация: -  0  +


Ну а в самой проге что надо изменить?

И ещё, в первоначальной блок схеме после начала написано ввод n, m.
Мы же ничего не вводим, зачем они?

Сообщение отредактировано: ghost -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #18


Смотрю...
*****

Группа: Пользователи
Сообщений: 1 055
Пол: Мужской
Реальное имя: Пшеничный Алексей Анатольевич

Репутация: -  6  +


То что надо изменить я уже обозначил.


--------------------
Если что-то не делает того, что вы запланировали ему делать - это еще не означает, что оно бесполезно.
--------------------
Прежде, чем задать вопрос - Правила :: FAQ :: Поиск
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #19


Новичок
*

Группа: Пользователи
Сообщений: 31
Пол: Женский

Репутация: -  0  +


Цитата(ghost @ 12.11.04 12:48)
Ну а в самой проге что надо изменить?

И ещё, в первоначальной блок схеме после начала написано ввод n, m.
Мы же ничего не вводим, зачем они?

В самой программе меняешь тоже самое:
b[i]:=random(40) меняешь на readln(b[i]);

а с n,m я проперлась, осталось с другой блок-схемы. :p2: надо просту выкинуть этот кусок из нее

Сообщение отредактировано: Лита -


--------------------
Что нам стоит мир пострить? Нарисуем - будем жить...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #20


Новичок
*

Группа: Пользователи
Сообщений: 23
Пол: Мужской

Репутация: -  0  +


После замены в проге, можно вводить самому массив А, но как-то странно он вводится. Я ввёл число, нажал enter и то число, которое я ввёл переносится на следующую строку.
Пример:
5
56
63
37
79
95
50
07
Как это исправить?
И ещё, как сделать чтобы вводимые числа писались не в столбик, а в сторку?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

3 страниц V  1 2 3 >
 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 24.12.2024 6:33
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name