Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Delphi, Kylix and Pascal


Ответ
 
Опции темы Опции просмотра
Старый 23.06.2010, 17:28   #1 (permalink)
Serjant0007
Member
 
Регистрация: 21.06.2010
Сообщений: 31
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Цикл

1. Два двузначных числа записанных одно за другим образуют четырехзначное число которое делится на их произведение. Найти эти числа. (Вообще что то не въезжаю в нее)
2. Ввести с клавиатуры 10 чисел положительные и отрицательные. Заменить все отрицательные числа их модулями и напечатать все полученные 10 чисел. (Тут сидел вспоминал вспоминал как ограничить ввод именно только 10 чисел и условие при котором будут заменяться, потом вывод их на экран ВСЕ так и не вспомнил).
3. Написать программу которая по заданным значениям чисел a и b находит a^b. В запросе укажите допустимые значения этих переменных т.е. если а дробное то b не может быть отрицательным. (ну первая часть это легко но почему то выдает ошибку над условием где я узнаю сколько будет a^b и пишет Invalid....., а вот условие как можно узнать первое число дробное или нет)

ПОМОГИТЕ ПОЖАЛУЙСТА!!!!
Serjant0007 вне форума   Ответить с цитированием

Старый 23.06.2010, 17:28
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Если поискать по форуму, то можно найти много похожего, рекомендую к прочтению

Цикл с параметром for
Цикл с условием, Паскаль

Старый 23.06.2010, 17:38   #2 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Сейчас выхожу из OnLine, вечером вернусь, посмотрю.
Vladimir_S вне форума   Ответить с цитированием
Старый 23.06.2010, 17:38   #3 (permalink)
Serjant0007
Member
 
Регистрация: 21.06.2010
Сообщений: 31
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

№2 пробывал делать думал так: While i<=10 do Writeln('vvedi 10 chisel'); Readln(n); If n<0 then n:=abs(n); Writeln(n); но что то не того
или вот еще
var
a:array [1..10] of integer;
i:integer;
begin
for i:=1 to 10 do
readln(abs(a[ i ]));
for i:=1 to 10 do
writeln(a[ i ]);
end;
Ну и последний вариант
uses crt;
var a:arrya[1..10] of integer;
i:integer;
begin
clrscr;
writeln('Vvodite chisla');
for i:=1 to 10 do
readln(a);
for i:=1 to 10 do
begin
if a<0 then a:=a*(-1);
writeln(a);
end;
readkye;
end.

Последний раз редактировалось Serjant0007; 23.06.2010 в 18:18
Serjant0007 вне форума   Ответить с цитированием
Старый 23.06.2010, 17:39   #4 (permalink)
Serjant0007
Member
 
Регистрация: 21.06.2010
Сообщений: 31
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Хорошо буду ждать)))
Serjant0007 вне форума   Ответить с цитированием
Старый 23.06.2010, 18:39   #5 (permalink)
shrek=)
Студент БГПУ
 
Аватар для shrek=)
 
Регистрация: 06.02.2010
Сообщений: 420
Записей в дневнике: 3
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 470
По умолчанию

Код:
uses crt;
const n=10;
var
a:array [1..n] of real;
i:integer;
begin
for i:=1 to n do
read (a[i]);
for i:=1 to n do begin
if a[i]<0 then a[i]:=-a[i];
end;
for i:=1 to n do
writeln (a[i]);
readln
end.

по-моему можно вот так.
shrek=) вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 23.06.2010, 18:46   #6 (permalink)
shrek=)
Студент БГПУ
 
Аватар для shrek=)
 
Регистрация: 06.02.2010
Сообщений: 420
Записей в дневнике: 3
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 470
По умолчанию

Решение 3 задачи:
Код:
uses crt;
var
a,s:real;
b:integer;
begin
writeln ('Введите основание');
read (a);
writeln ('Введите степень');
read (b);
if (a < 0) then s:= (-1)*Exp(b*Ln(Abs(a))) else
if (a > 0) then s:= Exp(b*Ln(Abs(a)));
writeln (a,'в степени',b,'равно',s);
readln
end.
мне кажется решение верное, если нет поправьте.

Последний раз редактировалось shrek=); 23.06.2010 в 19:20
shrek=) вне форума   Ответить с цитированием
Старый 23.06.2010, 19:46   #7 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Ну а мне вы любезно оставили первую задачку? Ладно, пожалуйста:
Код:
VAR
 i,j:Integer;
BEGIN
 For i:=10 to 99 do
  For j:=10 to 99 do
   If (((i div 10)*1000+(i mod 10)*100+j) mod (i*j))=0 then
    WriteLn('The sought numbers are ',i,' and ',j);
 WriteLn('That is all!');
 ReadLn;
END.
Vladimir_S вне форума   Ответить с цитированием
Старый 23.06.2010, 20:14   #8 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от shrek=) Посмотреть сообщение
мне кажется решение верное, если нет поправьте.
К сожалению, неверное. Ведь согласитесь, (-3)² не есть -9, а всё-таки +9. У меня получилось так:
Код:
VAR
 a,b,c:REAL;
 b1,i:Integer;
BEGIN
 Write('Base = ');
 ReadLn(a);
 If a>0 then
 begin
  Write('Power = ');
  ReadLn(b);
  c:=Exp(b*Ln(a));
 end else
 If a<0 then
 begin
  Write('Power (positive or negative integer value only!)= ');
  ReadLn(b1);
  If b1>0 then
   begin
    c:=1;
    For i:=1 to b1 do
     c:=c*a;
   end else
  If b1<0 then
   begin
    c:=1;
    For i:=1 to -b1 do
     c:=c*a;
    c:=1/c;
   end;
 end else
 begin
  Write('Power (negative and zero values are forbidden!)= ');
  ReadLn(b);
  c:=0;
 end;
 WriteLn('c= ',c);
 ReadLn;
END.
Vladimir_S вне форума   Ответить с цитированием
Старый 23.06.2010, 20:35   #9 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от shrek=) Посмотреть сообщение
по-моему можно вот так.
Можно, и, в принципе, всё правильно. Только позволю себе чуть-чуть подправить.
1. Поскольку в условии тип вводимых чисел не оговорен, считаю, что можно обойтись знаковым целым - так удобнее.
2. Если команды модуля CRT не используются, так не надо его (модуль) и присоединять.
3. При вводе желательны подсказки.
Код:
const n=10;
var
 a:array [1..n] of integer;
 i:integer;
begin
 for i:=1 to n do
  begin
   write('a[',i:2,']= ');
   readln(a[i]);
  end;
 writeln;
 for i:=1 to n do
  write(a[i]:7);
 writeln;
 for i:=1 to n do 
  if a[i]<0 then a[i]:=-a[i];
 for i:=1 to n do
  write(a[i]:7);
 readln
end.
Vladimir_S вне форума   Ответить с цитированием
Старый 23.06.2010, 21:13   #10 (permalink)
Serjant0007
Member
 
Регистрация: 21.06.2010
Сообщений: 31
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Просто огромное человеческое СПАСИБО!!! Очень порадовало что помогли с первой задачей я в нее вообще не въезжал что ды как. Вы просто молодцы еще раз спасибо)))
Serjant0007 вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 19:40.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.