Помогите решить несколько простеньких(для вас, а не для меня) задач.... Вот задания:
1)Границы промежутка заданы случайными числами. Проверить существование данного промежутка. На данном промежутке найти все числа, кратные числу с и их количество. Последовательность решения: 1. Описать переменные a, b, c как integer. 2. Задать с клавиатуры коэффициент кратности c. 3. Задать промежуток: randomize; {подключение генератора случайных чисел} a:=random(50); {задание случайного числа в пределах от 1 до 50} в:=random(100); {задание случайного числа в пределах от 1 до 100} 4. Проанализировать существование промежутка: если a>b, то промежуток не существует. 5. Организовать цикл от a до b и найти все кратные числа: for i:= а to в do {задание границ промежутка случайными числами } if int(i/2)=i/2 then begin write( i, ’ ‘); k:=k+1; end; 6. Проанализировать значение счетчика к и выдать соответствующее сообщение. 7. Осуществить задержку результата на экране. --------------------------------------------------------------------------------------------- 2). Даны натуральные числа А и В. Определить их наименьшее общее кратное. Последовательность решения: • формируем тело программы и описываем переменные: a,b,c,d,NOD-как integer; NOK – как real; • вводим натуральные числа А и В; • запоминаем их в ячейках C и D; • находим НОД чисел А и В; • запоминаем его в ячейке NOD; • вычисляем НОК по формуле: NOK = C*D / NOD; • выводим результат. • Подбираем контрольный пример для проверки программы. --------------------------------------------------------------------------------------------- 3)Составить программу вычисления корней квадратного уравнения вида a x 2 + b x + c = 0
Последовательность действий: 1. Описать переменные a, b, c, d, x1,x2 как REAL. 2. Задать с клавиатуры коэффициенты a, b, c. 3. Вычислить значение дискриминанта d = b 2 – 4 a c 4. Вывести значение дискриминанта на экран 5. Проверить значение дискриминанта: • Если дискриминант меньше нуля, то нет решения • Если дискриминант больше или равен нулю, то вычислить значения x1 и x2
Заранее спасибо.
klem4
21.04.2005 10:59
И что не получается ? Покажите нам ваш код и если надо мы его поправим.
Atos
21.04.2005 11:42
А вообще, если не знаешь паскаля, надо хотя бы попробовать учебник почитать. Например, Фаронов. ТурбоПаскаль. Учебный курс Алгоритм решения у тебя уже есть, осталось перевести его на Паскаль. Если что-то не знаешь, читай соответствующую главу. Если уж совсем что-то непонятно, задавай конкретный вопрос по какому-либо действию. Если не пробовать хоть что-то написать самостоятельно, то никогда программированию не научишься.
-Slim-
28.04.2005 12:49
Объясните что это значит:
вводим натуральные числа А и В; запоминаем их в ячейках C и D;
Как их запомнить в ячейках???????
volvo
28.04.2005 12:57
Описываем 4 переменные: A, B, C, D... Вводим A и B с клавиатуры, и далее - просто запоминаем эти же значения еще раз (чтобы они не потерялись при вычислении НОД):
C := A; D := B;
Guest
28.04.2005 15:33
Объясните плиз....что я сделал не правильно.....пишет ошибка номер 200....
Program myNOK; uses Crt; var a,b,c,d,NOD:integer; NOK:real; Begin WriteLn('Введите первое число'); read( a ); a:=c; WriteLn('Введите второе число'); read( B ); b:=d; While c<>d do if c>d then c:=c-d else d:=d-c; d:=NOD; Writeln('НОК равен ----> ',NOK,''); readln; Repeat until keypressed; end.
volvo
28.04.2005 15:45
Ошибка №200 - это "непропатченный" модуль CRT... Читай здесь Ошибка 200 (и попробуй поискать по форуму: ключевое слово - "пропатченный")
-Slim-
28.04.2005 16:35
Я всё пропатчил....ничего не изменилось....я думаю что ошибка в коде.....потому что всё остальное у меня работает.....
AlienEmperor
28.04.2005 16:38
Это же можно легко проверить: убери из проги Uses Crt и, соответственно Repeat Until Keypressed... Будет работать - ОК, значит CRT, не будет - глючит компилятор....
volvo
28.04.2005 16:44
-Slim-, не будет это работать... Смотри:
Program myNOK; uses Crt; var a,b,c,d,NOD:integer; NOK:real; { <-- NOK вещественный ??? } Begin WriteLn('Введите первое число'); read( a ); a:=c; WriteLn('Введите второе число'); read( B ); b:=d; While c<>d do if c>d then c:=c-d else d:=d-c; { До этого момента проблем быть не должно } d:=NOD; { <-- Здесь: откуда берется NOD? Каково его значение? } Writeln('НОК равен ----> ',NOK,''); { <-- Здесь: NOK?} { А что ему присваивали, чтобы его печатать } readln; Repeat until keypressed; end.
Но и ошибки 200 здесь тоже быть не должно... Ну нет здесь деления на 0...
-Slim-
28.04.2005 16:45
Убрал.....всё равно не работает....всё таже ошибка 200. А код то я правильно написал???????
volvo
28.04.2005 17:03
А вообще-то NOK вычисляется вот так:
Program myNOK; var a,b,c,d,NOD,NOK:integer; { все значения целые !!! } Begin WriteLn('Введите первое число'); readln( a ); c := a; { <-- не наоборот, а именно так !!! } WriteLn('Введите второе число'); readln( B ); d := b; { <-- здесь тоже !!! }
while(c*d <> 0) do if c < d then d := d mod c else c := c mod d; NOD := c + d;
NOK := a*b div NOD; { div потому что NOK должен быть целым } Writeln('НОК равен ----> ',NOK); readln; end.
Guest
28.04.2005 22:42
Спасибо! А по тому алгоритму что я в самом начале написал...реально что-нибудь составить???
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.