23.06.2010, 17:28 | #1 (permalink) |
Member
Регистрация: 21.06.2010
Сообщений: 31
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Цикл
2. Ввести с клавиатуры 10 чисел положительные и отрицательные. Заменить все отрицательные числа их модулями и напечатать все полученные 10 чисел. (Тут сидел вспоминал вспоминал как ограничить ввод именно только 10 чисел и условие при котором будут заменяться, потом вывод их на экран ВСЕ так и не вспомнил). 3. Написать программу которая по заданным значениям чисел a и b находит a^b. В запросе укажите допустимые значения этих переменных т.е. если а дробное то b не может быть отрицательным. (ну первая часть это легко но почему то выдает ошибку над условием где я узнаю сколько будет a^b и пишет Invalid....., а вот условие как можно узнать первое число дробное или нет) ПОМОГИТЕ ПОЖАЛУЙСТА!!!! |
23.06.2010, 17:28 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Если поискать по форуму, то можно найти много похожего, рекомендую к прочтению Цикл с параметром for Цикл с условием, Паскаль |
23.06.2010, 17:38 | #3 (permalink) |
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 |
23.06.2010, 18:39 | #5 (permalink) |
Студент БГПУ
Регистрация: 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. по-моему можно вот так. |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
23.06.2010, 18:46 | #6 (permalink) |
Студент БГПУ
Регистрация: 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 |
23.06.2010, 19:46 | #7 (permalink) |
Специалист
Регистрация: 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. |
23.06.2010, 20:14 | #8 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
К сожалению, неверное. Ведь согласитесь, (-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. |
23.06.2010, 20:35 | #9 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Можно, и, в принципе, всё правильно. Только позволю себе чуть-чуть подправить.
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. |
23.06.2010, 21:13 | #10 (permalink) |
Member
Регистрация: 21.06.2010
Сообщений: 31
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Просто огромное человеческое СПАСИБО!!! Очень порадовало что помогли с первой задачей я в нее вообще не въезжал что ды как. Вы просто молодцы еще раз спасибо)))
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|