Модераторы: volvo877, Snowy, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Интересная задача, помогите решить 
:(
    Опции темы
Mcicool
Дата 14.10.2005, 22:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 205
Регистрация: 9.10.2005

Репутация: нет
Всего: нет



Вводится последовательность чисел. Признак конца ввода - число 100.
Записать алгоритм решения следующей задачи.
1. Нахождения количества чисел в последовательности.
2. Нахождения суммы последовательности чисел.
3. Нахождения произведения последовательности чисел.
4. Нахождения максимального числа последовательности чисел.

PM MAIL   Вверх
Zero
Дата 14.10.2005, 22:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2169
Регистрация: 23.10.2004
Где: Россия, г. Рязань

Репутация: нет
Всего: 24



Цитата(Mcicool @ 14.10.2005, 23:05)
1. Нахождения количества чисел в последовательности.

Если эта последовательность перечисляется через запятые или пробелы, то подсчтать их кол-во и минус один.
Цитата(Mcicool @ 14.10.2005, 23:05)
2. Нахождения суммы последовательности чисел.

А там в начале создаёшь переменную типа реал:
Код

var
s:real;
...
s:=0;

а далее к в цикле прибавляешь к S соответствующие значения:
Код

S:= S + <число из полследовательности>

Цитата(Mcicool @ 14.10.2005, 23:05)
3. Нахождения произведения последовательности чисел.

Тоже самое, но вот так:
Код

var
  S:real;
...
S:=1;
S:=S*<число последовательности>


Цитата(Mcicool @ 14.10.2005, 23:05)
4. Нахождения максимального числа последовательности чисел.

А тут вот типа такого:
Код

var
  max:real;
.... 
  Max:=0;

далее в цикле:
проверяешь, если следующее число последовательности больше текущего Max, тогда Max, присвоит то самое число...
PM MAIL ICQ   Вверх
Mcicool
Дата 14.10.2005, 22:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 205
Регистрация: 9.10.2005

Репутация: нет
Всего: нет



Я не понимаю, как задать эту последовательность. Как ее задать в описательной части программы?
PM MAIL   Вверх
Mal Hack
Дата 14.10.2005, 22:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: нет
Всего: 261



Объявляешь массив от 1 до 100, к примеру.
делаешь ввод элементов массива в цикле от 1 до 100.
После readln( x[i] ); делаешь проверку: if x[i] = 100 then begin n := i; break; end;
Ну и затем при рассчетах используешь N как кол-во элементов в массиве (последовательности).
PM ICQ   Вверх
maxim1000
Дата 14.10.2005, 22:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: нет
Всего: 110



Цитата
Объявляешь массив от 1 до 100, к примеру

ну... без массива тут можно обойтись...
просто хранить искомые значения (минимум, среднее, ... что там еще) и обновлять их при вводе каждого числа...
после 100 - выводить...


--------------------
qqq
PM WWW   Вверх
Mal Hack
Дата 14.10.2005, 22:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: нет
Всего: 261



Цитата(maxim1000 @ 14.10.2005, 23:34)
просто хранить искомые значения (минимум, среднее, ... что там еще) и обновлять их при вводе каждого числа...

Ну это да, но я так понимаю человеку надо на учебу, а там все-таки привычка у преподов видеть данные и т.п.
Хотя, конечно, для птимальности для конкретных задач можно и не хранить.
PM ICQ   Вверх
Mcicool
Дата 14.10.2005, 22:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 205
Регистрация: 9.10.2005

Репутация: нет
Всего: нет



А вы не могли бы пример привести такой проги, если это не сложно.
PM MAIL   Вверх
Diesel Draft
Дата 15.10.2005, 01:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 876
Регистрация: 18.1.2005
Где: Lviv, Ukraine

Репутация: нет
Всего: 5



Давно не писал тому могут бить ошыбкы

Код


Var N, S, M, T : real;

begin
N=0;
S=0;
M=0;


  While N<>100 do
    begin
     Readln(T);
     if T<>100 then
      begin
 //   1. Нахождения количества чисел в последовательности.
 inc(N);

 //   2. Нахождения суммы последовательности чисел.
 S = S + T;

 //   3. Нахождения суммы последовательности чисел.
 //  Извини не понял задачи. Иногда з руским проблемы

 //   2. Нахождения максимального числа последовательности чисел.
 if M<T then M = T;

      end;
    end;

Writeln("Количества чисел в последовательности", N)
Writeln("суммы последовательности чисел", S)
Writeln("максимального числа последовательности чисел", M)


end;



Это сообщение отредактировал(а) Diesel Draft - 15.10.2005, 01:11


--------------------
НЕДОМА в маси 
PM MAIL WWW ICQ GTalk   Вверх
Druidik25
Дата 17.10.2005, 13:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 64
Регистрация: 27.1.2005
Где: Киев, Украина

Репутация: нет
Всего: нет



Кстати есть небольшая поправка к такой программе. Я не видел, что было сказано, что последовательность нужна положительная поэтому код
Код

M=0;

Не должен быть так записан.
Я думаю стоит ставить
Код

M=100;

Чего не может быть, а потом ставить проверку типа:
Код

if (M<T)OR(M=100) then M = T;

PM MAIL ICQ   Вверх
Zero
Дата 18.10.2005, 07:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2169
Регистрация: 23.10.2004
Где: Россия, г. Рязань

Репутация: нет
Всего: 24



Diesel Draft и Druidik25, не забываем что оператор присваивания в Паскале пишется ":=", а не "=".
Цитата(Druidik25 @ 17.10.2005, 14:36)
Кстати есть небольшая поправка к такой программе. Я не видел, что было сказано, что последовательность нужна положительная поэтому код

код Pascal/Delphi
1:
M=0;

Не должен быть так записан.
Я думаю стоит ставить

код Pascal/Delphi
1:
M=100;

Чего не может быть, а потом ставить проверку типа:

код Pascal/Delphi
1:
if (M<T)OR(M=100) then M = T;

Тогда условие теряет смысл, вначале, максимум, должен выбиратся самым маленьким а не большим... иначе он не будет найден.
PM MAIL ICQ   Вверх
Druidik25
Дата 20.10.2005, 21:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 64
Регистрация: 27.1.2005
Где: Киев, Украина

Репутация: нет
Всего: нет



Да забыл ещё втулить одну строку:

Код

  if(M=100) then M=T; 

Эта строка всё выравняет...

И сразу же повится смысл в том что я говорил...

Хотя, придираться - третье дело, но если кто и будет придираться, то лучьше тут чем где сдавать работу...

Это сообщение отредактировал(а) Druidik25 - 20.10.2005, 21:16
PM MAIL ICQ   Вверх
Zero
Дата 20.10.2005, 23:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2169
Регистрация: 23.10.2004
Где: Россия, г. Рязань

Репутация: нет
Всего: 24



Druidik25 Прочитай мой предыдущий пост...
(на счёт оператора присваивания)
smile
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi"
THandle
Rrader
volvo877

Запрещается!

1. Обсуждать и делится взломанными компонентами или программным обеспечением

2. Публиковать ссылки на варез

3. Оффтопить

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема »


 




[ Время генерации скрипта: 0.0549 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.