![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 22.10.2012
Сообщений: 12
|
![]()
Здравствуйте,подтолкните ,пожалуйста ,к решению.
Даны :два числа a и b найти их произведение от a до b не включительно. Вот,как я начала решать данную задачу : var a,b,s,r:integer; write ("a=');readen (a); write(' b =");readen (b); for r:=a to b (дальше нужно сделать так ,чтобы можно было найти произведение до b не включительно ). Нужна ли еще одна переменная ,или я ошибаюсь? (Если я ошибаюсь,то подскажите ,как лучше решить ). |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 24.04.2012
Сообщений: 300
|
![]()
Смутные воспоминания о паскале, но это некомпилябельно.
Помог? Оставляем отзыв =)
|
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
![]()
Нужна переменная-аккумулятор, в которую будет "собираться" произведение.
Перед началом цикла она устанавливается в 1, и на каждой итерации домножается на переменную цикла (r). Последний раз цикл выполняется при том значении r, которое указано после to. В Вашем случае, Вам нужно произведение чисел от a до (b-1). P.S. Это, конечно, если задание звучит как "найти произведение всех целых чисел от a до b не включительно". Фраза "найти их произведение от a до b не включительно" лично для меня не несёт никакого смысла. Последний раз редактировалось Abstraction; 01.11.2012 в 13:35. |
![]() |
![]() |
![]() |
#4 | |
Пользователь
Регистрация: 22.10.2012
Сообщений: 12
|
![]() Цитата:
Я правильно Вас поняла : Код:
___________ Код нужно оформлять по правилам: тегом [CODE]..[/СODE] (это кнопочка с решёточкой #) Не забывайте об этом! Модератор. Последний раз редактировалось Stilet; 01.11.2012 в 23:46. |
|
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
![]()
Нет. Как только Вы вошли в цикл, r присвоено a, поэтому предыдущее присваивание смысла не имеет (и присваивание в Pascal пишется := ). Точно так же, s изначально у Вас ничего не присвоено, что означает, что значение этой переменной произвольно. Следует, таким образом, убрать строку "r=b-1" и заменить строкой, присваивающей s значение 1.
Такой код (если, конечно, я правильно помню синтаксис Pascal - впрочем, можете проверить) при условии задания типа для всех переменных Integer (к слову, у Вас вместо объявления что-то странное, компилятор должен зарезать), будет считать произведение всех чисел от a до b. Вам надо - от a до (b-1). Вывод? Поменяйте предельное значение цикла с b на... |
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
чуть-чуть не так..
нужно примерно так: Код:
и ещё. небольшое лирическое отступление... язык программирования - это очень строгая вещь. Он не допускает вольностей. Вы в своей программе умудрились сделать 100500 мелких опечаток, описок и т.п. это всё приводит, в лучшем случае, к тому, что код не компилируется, в худшем - код будет работать неверно! Надо быть очень внимательным! "Тщательнее надо, ребята, тщательнее" (с) М.М.Жванецкий Последний раз редактировалось Serge_Bliznykov; 01.11.2012 в 14:37. |
![]() |
![]() |
![]() |
#7 | |
Пользователь
Регистрация: 22.10.2012
Сообщений: 12
|
![]() Цитата:
![]() ![]() [QUOTE=Serge_Bliznykov;1123173]чуть-чуть не так.. нужно примерно так: А вот можно так ? var a,b,s,r: integer; (и дальше все оставить так ,как Вы сказали ) Последний раз редактировалось Stilet; 01.11.2012 в 23:54. |
|
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
![]()
Да. longint нужен в том случае, если в "обычный" integer произведение "не влезет" (максимальное допустимое значение типа integer - 2^31-1, чуть больше двух миллиардов).
|
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 22.10.2012
Сообщений: 12
|
![]() |
![]() |
![]() |
![]() |
#10 | ||
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]() Цитата:
например, в TurboPascal целочисленные типы данных: Цитата:
если речь идёт про компиляторы в Win32 код, то да, Integer представлен 4 байтами и может быть от -2147483648 до 2147483647... FYI, ![]() |
||
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Условный оператор,оператор цикла и массив | Klark73 | Microsoft Office Excel | 1 | 19.12.2011 17:09 |
Условный оператор. Оператор выбора. | евгенийзууу | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 05.12.2011 14:37 |
Оператор выбора или условный оператор[Перенесено из JavaSE] | merhaba1992 | Помощь студентам | 1 | 20.01.2011 17:06 |
Условный оператор. Оператор выбора. Pascal | Сержuk | Помощь студентам | 4 | 17.11.2010 12:50 |