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

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

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

> Задача с массивом..., Определить эл-ты делящиеся на 4...
ghost
сообщение 28.10.2004 15:04
Сообщение #1


Новичок
*

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

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


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


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

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

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


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


Новичок
*

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

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


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

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


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


Гость






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

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


Новичок
*

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

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


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

min:=maxint;
max:=-maxint;

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


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


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

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

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


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


Новичок
*

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

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


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

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


Гость






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

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


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

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

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


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

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


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


Новичок
*

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

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


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


Новичок
*

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

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


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

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


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


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


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

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


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

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

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


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

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


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


Новичок
*

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

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


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

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

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


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

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

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


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


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


Новичок
*

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

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


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

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

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

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

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


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


Новичок
*

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

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


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

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

 



- Текстовая версия 18.07.2025 17:44
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"