Помощь - Поиск - Пользователи - Календарь
Полная версия: Простые алгоритмы
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Евген
Я думаю, для тех, кто разбирается в этой теме, задачи покажутся элементарными.Я только начинаю осваивать этот предмет.И, к сожалению, испытываю трудности уже в самом начале.
задача номер 1:
сделайте таблицу:
1-й столбец - числа 5,10,15,...100
2-й - числа из 1-го уменьшенные на 10 и умноженные на 4.
3-й - если число из 2-го столбца больше 200, должна выписаться разница этого числа и 200.Столбцы должны быть правильно отформатированны, чтобы каждое число было одно под другим.
я написал, как сумел, но не выходит 3-й столбец.

Код

program du2;
var I,X: Longint;
begin
for I:= 1 to 20 do
writeln(I*5:2,' ',4*(I*5-10):3,' ');
{третий столбец я пытался изобразить так, но что-то не идёт}
X:= 4(I*5-10)
if X > 200
then X-200;
writeln(I);
end.


и 2-я задачка:
Составить подпрограмму-фукцию, у которой 2 параметра десятичное число X и целое число N.Подрограмма вычислит значение X в Nй степени.Попрограмму вложить в главную программу,в которой можно будет ввести числа X и N и потом вызовом подпрограммы выдаст результат X в Nй степени.


К своему стыду, я даже не брался за 2-ю задачу.

И ещё вопрос чисто по работе самого паскаля.У меня Windows 2000, поставил 7-ю версию борланд паскаля.Сильно тормозит, не могу оперировать мышью.
Буду сильно признателен,если кто-нибудь найдёт время для оказания помощи.
С уважением, Евген.
pascal65536
В стандартном паскале нет функции возведения в степень. Придётся действительно писать специальную функцию. Обычно используют логарифмы и антилогарифмы для возведения в степень.

У меня тоже win2k проблем с паскалем нет, правда у меня 6-я версия. Только надо работать в полноэкранном режиме.
Catty
x^a=exp(a*ln(x)) - так можешь возвести число в степень в Паскале!
Atos
Цитата
я написал, как сумел, но не выходит 3-й столбец.

Строчка writeln(I); должна быть вставлена в цикл for.

И, кстати, что это за непонятная строчка?
Код
if X > 200 then X-200;
Guest
Atos
Это я пытался задать алгоритм 3-го столбца.Но видимо неудачно.Если знаешь, будь добр, подскажи.
APAL
Наверное он имел в виду:
Код
if X > 200 then X:=X-200;


;)
Catty
В книге Фаронова есть твоя вторая задача! Можешь порыться в форуме, здесь по-моему уже кто-то оставлял ссылку на его сайт, посмотри может она там есть!! ;)
Евген
Catty
Спасибо.Кстати нашёл.Вот ссылка кому надо http://pascal.dax.ru/?books
Atos
Попробуй для распечатки 3 столбца
Код

for I:= 1 to 20 do
begin
write(I*5:2,' ',4*(I*5-10):3,' ');
X:= 4(I*5-10);
if X > 200 then writeln(X-200) else writeln(' ');
end;
Guest
Пишет
Error 94= "." expected.
huh.gif
Atos
Так наверное один end лишний! Или что-то в этом духе...
Евген
А ты сам пробовал запустить? а то чего то у меня не выходит.... unsure.gif
fms
дак наверно end'a с точкой не хватает.. раз "expected".
APAL
To Atos, fms:

Помоему я понял... smile.gif
Был приведен только ФРАГМЕНТ проги, а он наверное пытался его откомпелировать... Может "доуказать" раздел описаний, и самое главное "PROGRAM ..."?
Guest
короче справился я с задачками...всем спасибо за участие.....вот кому интересно их решение:
Код

program pr1;
var
i,x:longint;
begin
for i:=1 to 20 do
begin
write(i*5:3,' ');
x:=4*(i*5-10);
write(x:3,' ');
if
x>200
then
write (x - 200);
writeln;
end;
end.

и вторая:
Код

program du3;
var x,n:integer;
function Mocnina(x,n:double):double;
begin
Mocnina:= round(exp(n*ln(x)));
end;
begin
write('Zadejte x=');
readln(x);
write('Zadejte n=');
readln(n);
write(Mocnina(x,n));
end.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.