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

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

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

> Пара задач (циклы for do ), .
Дмитрий Ильин
сообщение 24.12.2011 20:44
Сообщение #1


Новичок
*

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

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


Доброго времени суток жителям форума,в изучении темы задался вопросом решения задач(2 штучки),свои варианты написал,но не уверен,правильно ли с точки зрения программирования
Задание 6.5.
Написать программу вычисления n! (факториал числа n), где n положительно. Определение факториала:
0! = 1
1! = 1
2! = 1*2
3! = 1*2*3
n! = 1 * 2 * 3 *.... * (n - 1) * n
Другими словами, n! — это произведение первых n натуральных чисел.
Каждый следующий результат (обозначим его Р) получается путем умножения предыдущего результата (предыдущего Р) на счетчик, который пробегает значения от 1 до n.
Обозначим значение счетчика буквой k.
Получаем общий вид выражения: Р = Р * k (то есть воспользуемся рекуррентной формулой вычисления факториала: n! = (n - 1)! * n).
Программа должна быть организована так: с клавиатуры вводится число n (n— положительно), а затем на экран выдается таблица факториалов чисел до n включительно.
____________________________________________________
Как я понял натуральные числа-все целые,не отрицательные числа(12,256,1),но не (-24.5 ; 45.6);
Тогда вот код:
Код
uses crt;
var p,k,n:integer;
begin
p:=1;
readln(n);
for k:=1 to n do
   p:=p*k;
writeln(p);
end.


Почему k:=1 ? ...Потому что если К будет =0 то P:=p*k = (P*0),а любое число,умнодженное на ноль - ноль),поэтому я взял k:=1
__________________________________
Задание 6.6.
Написать программу вычисления суммы ряда S=1 + 2 + 3 + 4 + 5 + 6. Нарисовать блок-схему и заполнить таблицу трассировки. Убедиться при трассировке, что сумма равна 21.
________________
Мое решение :
Код
uses crt;
var p,k,n:integer;
begin
p:=0;
readln(k);
for n:=1 to k do
p:=P+n;
writeln(p);
end.

Вот собственно,можете проверить,что я не так делаю?
Спасибо.


--------------------
Каждый программист - Творец (с)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
IUnknown
сообщение 25.12.2011 16:31
Сообщение #2


a.k.a. volvo877
*****

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

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


Названия переменных - стандартные: S=сумма, P=произведение, i=управляющая переменная цикла. Алгоритм такой:
Цитата
Заметил тут лишь закономерность,в знаменателе идет три цифры,причем начинаются они с
N (а не с N+1). Значит, для того чтобы найти знаменатель на каждом шаге, достаточно перемножить 3 последовательных числа, начиная с N. Как это проще всего сделать? Правильно, написав вложенный цикл j = 0..2, и добавив переменную j к номеру текущего слагаемого. Тогда для i = 1 внутренний цикл переберет значения
j = (1+0), (1+1), (1+2) = 1, 2, 3
, для i = 2:
j = (2+0), (2+1), (2+2) = 2, 3, 4
и так далее... Ну, а перемножать 3 числа в цикле ты уже умеешь.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Дмитрий Ильин   Пара задач (циклы for do )   24.12.2011 20:44
Krjuger   Зачем подключать crt, если вы его не используете,в...   24.12.2011 22:16
Дмитрий Ильин   Зачем подключать crt, если вы его не используете,...   24.12.2011 22:19
IUnknown   И что, таблица-таки выдается? :) PascalABC также ...   24.12.2011 22:42
Дмитрий Ильин   Создал мини "таблицу" из двух столбиков ...   24.12.2011 23:06
IUnknown   Я бы все-таки отформатировал, чтоб таблица на табл...   24.12.2011 23:28
Дмитрий Ильин   Я бы все-таки отформатировал, чтоб таблица на таб...   24.12.2011 23:47
Дмитрий Ильин   у меня к вам еше 2 вопроса 1) есть задача,в ней мы...   25.12.2011 14:11
IUnknown   Первый цикл - координата X изменяется от 1 до 80, ...   25.12.2011 14:32
Дмитрий Ильин   Первый цикл - координата X изменяется от 1 до 80,...   25.12.2011 15:05
IUnknown   Неправда. Я ничего не говорил о том, что внутри ци...   25.12.2011 15:30
Дмитрий Ильин   Работает,работает... Вот только для понимания слож...   25.12.2011 16:12
IUnknown   Названия переменных - стандартные: S=сумма, P=прои...   25.12.2011 16:31


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

 



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