1 / 1 / 4
Регистрация: 08.08.2013
Сообщений: 86
1

Запрашивать ввод числа, передавать его функции как параметр и выводить полученный результат

08.08.2013, 15:51. Показов 928. Ответов 6
Метки нет (Все метки)

Эта программа должна запрашивать ввод целого числа, передавать его функции как параметр и выводить на экран полученный результат. В моём варианте выдаёт 113 ошибку, помогите разобраться плиз
Параметр задаёт число,факториал которого нужно вычислить.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
program factorial;
var n:integer;
begin
writeln(n, 'vvedite chislo faktoriata i nashmite enter');readln;
function factor(n:integer):longint;
var
f:integer;
i:integer;
begin
f:=1;
for i:=2 to n do
f:=f*i;
factor:=f;
end;
writeln(f);
end.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.08.2013, 15:51
Ответы с готовыми решениями:

Как вывести результат функции void через cout? Или передавать в функцию параметр типа string?
class tomat : public cveti { public: int ves = (rand() % 599 + 1); string an; void print()...

[Эмулятор KP580] Сложить два числа, если полученный результат отрицательный, то его нужно заменить нулем
Дано одно число регистры В(число равно нулю) прибавить к этому числу другое число, если полученный...

Как взять полученный результат из одного массива и вставить его в другой массив?
Доброго времени суток. Хотел спросить как можно взять полученный результат из одного метода и...

Скрыть параметр GET запроса но выводить результат
Здравствуйте! есть запрос Хотелось бы узнать если ли хоть малейшая возможность? чтобы в...

6
Эксперт 1С
476 / 413 / 93
Регистрация: 26.09.2012
Сообщений: 1,903
08.08.2013, 15:55 2
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
program factorial;
var n:integer;
function factor(n:integer):longint;
var
f:integer;
i:integer;
begin
f:=1;
for i:=2 to n do
f:=f*i;
factor:=f;
end;
begin
writeln(n, 'vvedite chislo faktoriata i nashmite enter');readln(n);
writeln(factor(n));
 
end.
1
1 / 1 / 4
Регистрация: 08.08.2013
Сообщений: 86
08.08.2013, 18:41  [ТС] 3
Cпасибо=) я всё понял
0
481 / 119 / 17
Регистрация: 30.09.2010
Сообщений: 473
12.08.2013, 22:16 4
Внутреннюю переменную f: integer надо тоже сделать типа longint. Правда для ABC и Дэлфи, например, это все равно, т.к. там integer четырехбайтовый, но для Турбо Паскаля разница во время выполнения будет, да и вообще так не делают.
0
1642 / 1091 / 487
Регистрация: 17.07.2012
Сообщений: 5,345
12.08.2013, 23:13 5
Напильнег, а вот этот комментарий правильный,ведь если функция писалась для longint то и в проге логичнее longint юзать.
0
481 / 119 / 17
Регистрация: 30.09.2010
Сообщений: 473
20.08.2013, 23:21 6
Логичнее не совсем то слово - ведь если integer меньше чем longint, то при вычислениях внутри функции мы можем получить переполнения для аргумента, для которого в типе longint все в порядке. Т.е. мы будем в зависимости от настройки компилятора либо получать неверный результат, либо аварийное завершение программы на корректных исходных данных. Так что это не просто логичнее, а, как я и написал - так НАДО делать.
1
1642 / 1091 / 487
Регистрация: 17.07.2012
Сообщений: 5,345
20.08.2013, 23:22 7
Напильнег, да о переполнении я как-то не подумал...
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.08.2013, 23:22
Помогаю со студенческими работами здесь

Как передавать в аргумент функции массив, и можно ли возвращать его из функции?
привет друзья! можно ли в VB 6.0 передавать в аргумент функции массив и можно ли возвращать его...

Результат работы функции как параметр шаблона
В старом с++ билдере такое работало, новый clang ругается. template <class T, const IID* piid =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru