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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.02.2009, 20:26   #1
Rise
Пользователь
 
Регистрация: 05.01.2009
Сообщений: 20
По умолчанию 3 задачи на процедуры и функции

Помогите пожалуйста написать на Паскале 3 програмки. Желательно, наиболее простым способом. Сам все не могу понять процедуры и функции.

1) Описать функцию IsPower5(K) логического типа, возвращающую TRUE, если целый параметр K (K > 0) является степенью числа 5, и FALSE в противном случае. С ее помощью найти количество степеней числа 5 в наборе из 10 положительных чисел.

2) Описать процедуру Add(D,K), добавляющую к целому положительному числу K слева цифру D (D - входной параметр целого типа, лежащий в диапазоне 0-9, K - параметр целого типа, являющийся одновременно входным и выходным). С помощью этой процедуры последовательно добавить к данному числу K слева данные цифры D1 и D2, выводя результат каждого добавления.

3) Даны две дроби a/b и c/d. Написать программу для умножения дроби на дробь. Результат должен быть несократимой дробью. Для сокращения дробей (и данных и результата) нужно найти НОД (наибольший общий делитель) числителя и знаменателя. Нахождение НОД двух чисел оформить в виде процедуры.
Rise вне форума Ответить с цитированием
Старый 22.02.2009, 20:37   #2
maladoy
delphi-ст!
Форумчанин
 
Аватар для maladoy
 
Регистрация: 02.01.2009
Сообщений: 825
По умолчанию

к 3 задаче
Код:
procedure Nod(var a:integer;var b:integer;var del:integer);
var
ost:integer;
begin
repeat

ost:=a mod b;
a:=b;
b:=ost;
if b<>0 then del:=ost;

until ost=0 ;
end;
вступлю в команду разработчиков ПО на Delphi
maladoy вне форума Ответить с цитированием
Старый 22.02.2009, 21:16   #3
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

К первой задаче:
Код:
function IsPower5(K : longint) : boolean;
 var s : longint;
 begin
 s := 1;
 while s<=K do
  begin
  s := s*5;
 if s=K then
   begin
   IsPower5:=true;
   exit;
   end;
  end;
 IsPower5 := false;
 end;
Ко второй:
Код:
procedure add(D : integer; var K : longint);
 var i : integer;
 tK,st : longint;
 begin
 i := 0;
 tK := K;
 while tK>0 do
  begin
  tK := tk div 10;
  inc(i);
  end;
 st := 1;
 while i>0 do
  begin
  st := st*10;
  dec(i);
  end;
 K := K + D*st;
 end;
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 22.02.2009, 21:19   #4
valetik
 
Регистрация: 28.12.2008
Сообщений: 9
По умолчанию

К 1-ой задаче

Код:
function IsPower5(k: Integer): Boolean;
begin
   If k = 1 then
      begin
         IsPower5:=True;
         exit;
      end;

   If (k mod 5)=0 then IsPower5:=IsPower5(k div 5)
   else IsPower5:=False;
end;
Я только не понял второй части задания. Как можно с помощью этой же функции получить степень 5? Ведь она возвращает ТОЛЬКО ОДИН параметр - логический. И он никак нам не может сказать о степени 5-ки...
valetik вне форума Ответить с цитированием
Старый 22.02.2009, 21:32   #5
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

valetik Думаю, имеется в виду, что дано 10 чисел, и нужно сказать сколько из них являются степенью 5.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 22.02.2009, 22:18   #6
NeshSoft
Максим Николаев
Форумчанин
 
Аватар для NeshSoft
 
Регистрация: 15.02.2009
Сообщений: 170
По умолчанию

ко второй части первого задания:
Код:
function twopart:integer;
var i:integer;
begin
result:=0;
for i:=1 to 10 do if IsPower5(mas[i]) then inc(result);
end;
где mas - это глабально обьявленный массив с 10 числами (mas: array[1..10] of integer;
NeshSoft. Программирование на заказ для студентов. Delphi/Pascal. Подробнее на сайте neshsoft.narod.ru
NeshSoft вне форума Ответить с цитированием
Старый 31.05.2009, 08:45   #7
Горе программист
 
Регистрация: 26.05.2009
Сообщений: 3
По умолчанию

Помогите написать задачу на процедуру:
Дано целое Мбвещественные векторы, {x[i]} 1=1,2,...,M+5; j=1,2,....,50.
У вектора с наименьшим числом отрицательных компонент, все компоненты увеличить на 0.5; если оба вектора имеют одинаковое число,
отрицательных компонент, то по указанному правилу преобразовать вектор Х. И как нибудь попроше, т.к. процедуру я не поняла.
Горе программист вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
2 задачи, двумерный массив, процедуры&функции mAveRik Помощь студентам 1 18.12.2008 19:01
2 задачи на процедуры и функции KulOle Паскаль, Turbo Pascal, PascalABC.NET 2 08.12.2008 22:13
Процедуры и функции V25 Паскаль, Turbo Pascal, PascalABC.NET 1 17.11.2008 20:02
Процедуры и функции KulOle Паскаль, Turbo Pascal, PascalABC.NET 1 26.10.2008 14:18
Задачи на Паскале. Строковые процедуры и функции Мент Паскаль, Turbo Pascal, PascalABC.NET 3 25.06.2008 13:24