![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Домовой |
![]() ![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 23 Пол: Мужской Репутация: ![]() ![]() ![]() |
![]() Я уже, наверное, немножко "поднадоел"? ![]() Опять я встал при разработке программульки. Вот задание: Найти все трехзначные числа, которые в 7 раз больше суммы попарных произведений своих цифр (например, 182=7*(1*8+8*2+1*2)) Вроде все понятно и ясно. Сейчас читал самоучитель и вроде вы понял, чтобы отображать например из числа 100 первую цифру, надо использовать к переменной параметр [1], т.е. a=100, а отображение первой цифры a[1]. Но почему-то это не работает к присваиванию переменной ![]() Вот код: Код var a, m: real; i: integer; begin FOR i := 101 TO 999 DO begin a:=7*(i[1]*i[2]+i[2]*i[3]+i[1]*i[3]); writeln(a); end; end. |
![]() ![]() |
-Volvo- |
![]()
Сообщение
#2
|
Гость ![]() |
Цитата Сейчас читал самоучитель и вроде вы понял, чтобы отображать например из числа 100 первую цифру, надо использовать к переменной параметр [1], т.е. a=100, а отображение первой цифры a[1]. Именно ток... Только это - при работе со строками... у тебя же I - типа Integer, с ним это не пройдет...Воспользуйся другим методом определения цифр в трехзначном числе X: первая цифра: digit_1 = X div 100; третья цифра: digit_3 = X mod 10; вторая цифра, соответственно: digit_2 = (X - 100*digit_1 - digit_3) div 10; |
Домовой |
![]()
Сообщение
#3
|
Новичок ![]() Группа: Пользователи Сообщений: 23 Пол: Мужской Репутация: ![]() ![]() ![]() |
гм...
ага... с этим ясно... вроде составил, но программа почему-то считает значения и двузначные и трехзначные... Код program zikl_8; var c: real; a, i, d1, d2, d3: integer; begin i:=101; repeat begin d1:=i div 100; d3:= i mod 10; d2:=(i-100*d1-d3) div 10; a:=7*(d1*d2+d2*d3+d1*d3); c:=a; if (c>100) or (c<1000) then begin writeln(a) end; i:=i+1; readln; end; until a>=999; end. |
-Volvo- |
![]()
Сообщение
#4
|
Гость ![]() |
По-моему, тебе вполне достаточно этого:
program zikl_8; Кстати, конструкция Repeat ... Until сама по себе является операторными скобками, то есть внутри нее Begin ... End просто лишние... |
![]() ![]() |
![]() |
Текстовая версия | 19.07.2025 14:43 |