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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.10.2008, 23:39   #1
die_hard
Пользователь
 
Регистрация: 24.10.2008
Сообщений: 16
По умолчанию Задачи на циклы - Pascal

Здравствуйте, уважаемые програмисты=)) Вообщем моя проблема такова: не могу решить лабораторку по циклам в Paskal(( (первый курс, вы наверное догадались). Я понимаю, что до моих проблем тут никому дела нет, но всё таки помагите чем сможете...
Вообщем первая (и наверное самая простая) задача: "Даны целые положительные числа N и K. Используя только операции сложения и вычитания, найти частное от деления нацело N и K, а также остаток от деления."
Вот собственно мои соображения:
program _;
var n,k,x:real;{х-остаток}
begin
readln (n);
readln (k);
while x<k do
x:=n-k;
writeln (x);
...
end.
Но, ничего не получаеться...(( Думаю, поняв принцип решения первой задачи, пойму и остальные.))
И исчо: вы не будете сердиться, если я буду задавать глупые вопросы?!))
die_hard вне форума Ответить с цитированием
Старый 25.10.2008, 00:40   #2
LuMax
Пользователь Подтвердите свой е-майл
 
Регистрация: 24.11.2007
Сообщений: 53
По умолчанию

как я понял там должна бать еще одна переменая к которой пребовляеться единица если выполняеться x>k,вот эта переменая и будет выражать частное
ЗЫ правильно пишеться Pascal

Последний раз редактировалось LuMax; 25.10.2008 в 01:01.
LuMax вне форума Ответить с цитированием
Старый 25.10.2008, 19:28   #3
die_hard
Пользователь
 
Регистрация: 24.10.2008
Сообщений: 16
По умолчанию

Спасибо, разобрался с этой задачей. Может у кого есть какие-нибудь соображения по поводу такой задачи: "Дано целое число N (>0), являющееся некоторой степенью числа 2: N = 2K. Найти целое число K – показатель этой степени." Заранее благодарен.
die_hard вне форума Ответить с цитированием
Старый 26.10.2008, 08:38   #4
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Возведение числ 2 в степень n есть умножение этого числа n раз на себя. Естественно предположить, что для того чтобы узнать сколько раз мы умножили, нужно обратно делить на 2, пока число не будет =1.
Целочисленное деление N div 2.
Цикл надо использовать
While N>1 do
puporev вне форума Ответить с цитированием
Старый 26.10.2008, 09:05   #5
Kostia
Участник клуба
 
Аватар для Kostia
 
Регистрация: 21.11.2007
Сообщений: 1,690
По умолчанию

Может сдвигами попробовать:

Код:
uses CRT;
var
  n,k: integer;
begin
  clrscr;
  write('Enter two numbers '); readln(n);
  k:=0;
  repeat
    n:=n shr 1;
    k:=k+1;
  until n=1;
  writeln('Power: ',k);
  readln;
end.
Kostia вне форума Ответить с цитированием
Старый 26.10.2008, 11:51   #6
die_hard
Пользователь
 
Регистрация: 24.10.2008
Сообщений: 16
По умолчанию

Спасибо вам) Только немного не допонял госп. puporeva. Я задаю решение примерно таким образом:
program _;
var n, k : real;
begin
readln (n);
while n>1 do
k:=n div 2
writeln (k);
end.
Но паскаль выдаёт сообщение, что задано неверное выражение...
А по поводу решения через shr - этот оператор вообще для меня открытие - впервые его вижу, но всё прекрасно работает (а кто бы сомневался=)).
die_hard вне форума Ответить с цитированием
Старый 26.10.2008, 12:06   #7
die_hard
Пользователь
 
Регистрация: 24.10.2008
Сообщений: 16
По умолчанию

Ааа... Всё понял, где делал ошибку...=))
Может поможете доделать лабу до конца? Всё равно для вас эти задачи, как семечки...
?=))
die_hard вне форума Ответить с цитированием
Старый 26.10.2008, 12:21   #8
любаша
Пользователь
 
Регистрация: 26.10.2008
Сообщений: 26
По умолчанию

всем привет)))еще одна первокурсница,котораяя парится с циклами. может кто-то сможет мне помочь:напечатать минималное число,большее 200,которое нацело делится на 17????
любаша вне форума Ответить с цитированием
Старый 26.10.2008, 13:02   #9
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

В следующий раз создавай новую тему, не лезь в чужую, удалят.
Код:
var n,i:integer;
begin
n:=200;
repeat
inc(n)  //увеличиваем число на 1, пока оно не будет делиться на 17
until n mod 17=0;
write('n=',n);
readln
end.
puporev вне форума Ответить с цитированием
Старый 26.10.2008, 15:37   #10
die_hard
Пользователь
 
Регистрация: 24.10.2008
Сообщений: 16
По умолчанию

Вообщем ещё не могу вычислить факториал целого числа n. Кто может подсказать код?!=))
die_hard вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Циклы (Pascal) Дима82 Помощь студентам 4 07.06.2008 17:07
Pascal.3 задачи ромка) Паскаль, Turbo Pascal, PascalABC.NET 6 30.05.2008 01:44
задачи на С++,assembler,Pascal Mitron Фриланс 1 06.01.2008 14:55