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

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

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

> Помогите пожайлусто с Паскалем, Паскаль
сообщение
Сообщение #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 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 3)
сообщение
Сообщение #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 -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3





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

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


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

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

Спасибо, помог,работает!!!!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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 
 К началу страницы 
+ Ответить 

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

 





- Текстовая версия 29.03.2024 0:49
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name