Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.12.2012, 11:05   #1
Excellix
 
Регистрация: 05.03.2012
Сообщений: 4
Восклицание Факториал, НОД, Фибоначчи, пинг и пр.

Работал ранее с Pascal, Basic, даже C в малой степени, однако вот препод задал BAT написать и я завис, читая help из cmd.

Задачи таковы:
Задание 1:
Написать программу, которая выдает факториал числа. Число задается внутри программы.
Задание 2:
Написать программу, которая выдает НОД (Наибольший общий делитель) двух чисел. Числа вводятся как параметры запуска программы.
Задание 3:
Написать программу, которая выдает ряд Фибоначчи. Количество элементов задается пользователем во время работы программы. Ряд записывается в текстовый файл.
Задание 4:
Написать программу, пингующую группу адресов 10.74.ххх.ххх Результаты заносятся в текстовый файл.
Задание 5:
Написать программу, которая создает свою копию, и запускает ее. Та в свою очередь удаляет программу-родителя, создает свою копию и запускает ее. Та в свою очередь удаляет программу-родителя, создает свою копию и … (и т.д.)
Excellix вне форума Ответить с цитированием
Старый 13.12.2012, 12:29   #2
Нур
Пользователь
 
Регистрация: 03.12.2009
Сообщений: 44
По умолчанию

Так пиши, чего завис то?
Нур вне форума Ответить с цитированием
Старый 13.12.2012, 12:31   #3
Slym
Участник клуба
 
Регистрация: 07.12.2011
Сообщений: 1,025
По умолчанию

http://freezek.ucoz.ru/blog/2008-11-19-83


Вот классический пример рекурсивного подсчета факториала на командном языке:

@echo off

call :factorial %1
echo %RESULT%
exit

rem Функция для подсчета значения факториала
rem Вход:
rem %1 Число, для которого необходимо подсчитать факториал
rem Выход:
rem %RESULT% Значение факториала
:factorial

if %1 == 0 (
set RESULT=1
exit /b
)

if %1 == 1 (
set RESULT=1
exit /b
)

set /a PARAM=%1 - 1

call :factorial %PARAM%

set /a RESULT=%1 * %RESULT%

exit /b

Пример работы:

> factorial.bat 10
3628800
Не стесняемся, плюсуем!

Последний раз редактировалось Slym; 13.12.2012 в 12:35.
Slym вне форума Ответить с цитированием
Старый 13.12.2012, 12:40   #4
Slym
Участник клуба
 
Регистрация: 07.12.2011
Сообщений: 1,025
По умолчанию

Код:
set n=5
set result=1
:loop
set /a result=result*n
set /a n=n-1
if %n%==0 goto exit
goto loop
:exit
echo %result%
Не стесняемся, плюсуем!
Slym вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Пинг на роутер DianaKS Работа с сетью в Delphi 1 29.08.2012 00:26
Определить пинг Shouldercannon Общие вопросы Delphi 10 26.05.2011 21:32
Последовательность Фибоначчи. Сумма в последовательности Фибоначчи, сравниваемая с числом N Neitrosha Помощь студентам 5 05.04.2011 09:19
Пинг в зоне рф Баламут Свободное общение 20 02.12.2010 12:48
Пинг-понг Ckomoroh Gamedev - cоздание игр: Unity, OpenGL, DirectX 9 27.08.2010 18:33