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

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

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

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


Гость






Лита
Я по-другому не пишу... (и Вам не советую) angry.gif
 К началу страницы 
+ Ответить 
ghost
сообщение 13.12.2004 21:57
Сообщение #42


Новичок
*

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

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


Цитата(volvo @ 13.12.04 13:38)
ghost
А для чего в программе пишется:
Код
const n=20;

для красоты? По-моему, не только. Меняем на пюбое другое - и программа работает...

Нет, я имел в виду, чтобы прога спрашивала у юзера, сколько эл-ов он хочет обработать и, соответсвенно, обрабатывала это кол-во.

Сообщение отредактировано: ghost - 13.12.2004 21:58
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 13.12.2004 22:44
Сообщение #43


Гость






ghost
Тогда измени самое начало программы вот так:

Uses crt;
const maxN=200; { можно и больше }
Var        b,c:array [1..maxN] of integer;
 min,max,i,j:integer;
 next: LongInt;
 Again, ToDo: Boolean;

Var n: Integer;
begin
 repeat
   write('n = '); readln(n)
 until (n >= 2) and (n <= maxN);
 clrscr;
 ... { далее - без изменений }
end.

 К началу страницы 
+ Ответить 
mithquessir
сообщение 13.12.2004 22:46
Сообщение #44


Гость






Есть как минимум два способа, чтобы
Цитата
чтобы прога спрашивала у юзера, сколько эл-ов он хочет обработать и, соответсвенно, обрабатывала это кол-во

1. Меняешь:
Код

const maxn=1000;
Var        b,c:array [1..maxn] of integer;
 min,max,i,j,n:integer;
 next: LongInt;
 Again, ToDo: Boolean;

Затем до
Код

While Again Do
Begin
clrscr;
...

пишешь:
Код

WriteLn('Cколько эл-ов вы хотите обработать?');
ReadLn(n);

2. Динамическое программирование. Про него можно почитать в ФАК`е.

Сообщение отредактировано: mithquessir - 13.12.2004 22:58
 К началу страницы 
+ Ответить 
volvo
сообщение 13.12.2004 22:49
Сообщение #45


Гость






mithquessir
:nono: Неверно... Не нужно вводить количество элементов в цикле (смысл какой?), это нужно делать в самом начале работы программы... Не вводи народ в заблуждение...
 К началу страницы 
+ Ответить 
mithquessir
сообщение 13.12.2004 22:59
Сообщение #46


Гость






Упс. blink.gif
Опечатка
Исправил

Сообщение отредактировано: mithquessir - 13.12.2004 22:59
 К началу страницы 
+ Ответить 
ghost
сообщение 14.12.2004 14:31
Сообщение #47


Новичок
*

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

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


Big thx smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
ghost
сообщение 22.12.2004 19:56
Сообщение #48


Новичок
*

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

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


Спасите меня с блок схемой плз, никак не получается

Uses crt;
const maxn=200;
Var        b,c:array [1..maxn] of integer;
 min,max,i,j,error:integer;
 next: LongInt;
 Again, ToDo: Boolean;
Var n: Integer;
label e1;
begin
 clrscr;
   gotoxy  (12,10);
  writeln ('Данная программа задаёт массив А, выбирает из него числа');
   gotoxy  (15,11);
  writeln ('кратные 4 и создаёт из этих чисел новый массив С. ');
   gotoxy  (19,13);
  writeln ('Элементами вашего массива должны быть');
   gotoxy  (20,14);
  writeln ('целые числа от -32768 до 32767.');
   gotoxy  (12,16);
  writeln ('текст');
   gotoxy  (27,17);
  writeln ('текст');
   gotoxy  (18,19);
  writeln ('Нажмите любую клавишу для продолжения');
   readkey;

e1:
Again := True;
clrscr;
repeat
  write('Сколько эл-ов вы хотите обработать? (Кол-во эл-ов от 2 до 200!!!)');
  {$I-}
  readln(n);
  error:=ioresult;{$I+}
  IF (n<2) or (n>maxn) OR (ERROR<>0)
  then  writeln ('Ошибка! Кол-во эл-ов от 2 до 200!');
until (n >= 2) and (n <= maxN) AND (ERROR=0);
 clrscr;
While Again Do
Begin
 clrscr;
  writeln ('Вводите целые числа в диапозоне от -32768 до 32767');
  writeln ('Массив А');
Begin
For i:=1 to n do
  Repeat
    {$I-} readln(next); {$I+}
    ToDo := False;
    If (next < -32768) or (next > 32767) Then
      Writeln('Введённое вами число вне диапозона (-32768 .. 32767). Повторите ввод!')
    Else If IOResult <> 0 Then
             Writeln('Введён неверный формат. Повторите ввод!')
           Else
             Begin
               b[i] := next; ToDo := True
             End;
  Until ToDo;

clrscr;
  writeln ('Массив А');
For i:=1 to n do
  write(b[i]:5);
  writeln;
End;

   gotoxy (1,5);
  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]:5);
 writeln;
 writeln('Всего элементов ',j);
 writeln('max=',max,' min=',min);
end
else
 writeln('Нет элементов кратных 4');

  writeln('Вы хотите сделать ещё один массив? y/n');
  case UpCase(readkey) of
  #89:goto e1;
  #121:goto e1;
  #78: exit;
  #110: exit;
  end;
End; { While Again }
end.

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



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