IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Помогите пожайлусто с Паскалем, Паскаль
ovosch
сообщение 23.05.2011 22:07
Сообщение #1





Группа: Пользователи
Сообщений: 4
Пол: Мужской
Реальное имя: ovosch

Репутация: -  0  +


Проверьте пожалуйсто задачу . Где-то ошибка б но я не знаю как исправить

Найти все трехзначные числа, которые можно представить разностью между квадратом числа, образованного первыми двумя цифрами и квадратом третьей цифры. (Например, 100, 147).

program ovosch;
var
a,b,e,d,i,n:integer;
begin
for i:=1 to 999 do
begin
a:=random(900)+100;
b:=a mod 100;
d:=b mod 10;
e:=a div 10;
if a=sqr(e)-sqr(d) then writeln(a)
end;
end.


По сути прога должна выдавать только 2 числа (100, 147).Заранее спасибо.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
DarkWishmaster
сообщение 23.05.2011 22:32
Сообщение #2


Бывалый
***

Группа: Пользователи
Сообщений: 168
Пол: Мужской

Репутация: -  3  +


Цитата(ovosch @ 23.05.2011 22:07) *

Проверьте пожалуйсто задачу . Где-то ошибка б но я не знаю как исправить

Найти все трехзначные числа, которые можно представить разностью между квадратом числа, образованного первыми двумя цифрами и квадратом третьей цифры. (Например, 100, 147).

program ovosch;
var
a,b,e,d,i,n:integer;
begin
for i:=1 to 999 do
begin
a:=random(900)+100;
b:=a mod 100;
d:=b mod 10;
e:=a div 10;
if a=sqr(e)-sqr(d) then writeln(a)
end;
end.

По сути прога должна выдавать только 2 числа (100, 147).Заранее спасибо.

дело в том что у тебя a:=random(900)+100; так как число 100 или 147 могут не попадать в ряд случайно сгенерированых чисел, то ничего тебе на экран выводить не будет.
Напиши a:=i;
и цикл начинай с 100, тебе же нужно 3 значные числа.

Сообщение отредактировано: DarkWishmaster - 23.05.2011 22:33
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
ovosch
сообщение 23.05.2011 22:37
Сообщение #3





Группа: Пользователи
Сообщений: 4
Пол: Мужской
Реальное имя: ovosch

Репутация: -  0  +


Цитата(DarkWishmaster @ 23.05.2011 22:32) *

дело в том что у тебя a:=random(900)+100; так как число 100 или 147 могут не попадать в ряд случайно сгенерированых чисел, то ничего тебе на экран выводить не будет.
Напиши a:=i;
и цикл начинай с 100, тебе же нужно 3 значные числа.

Спасибо, помог,работает!!!!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 23.05.2011 23:20
Сообщение #4


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


+1 от ovosch

Но я бы сделал как-то вот так..
for i:=10 to 99 do begin
a:= i*i;
b:= i*10;
for j:=0 to 9 do
if a-j*j=b+j then writeln(i,j);
end;


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 9.05.2024 19:12
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"