![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Jane |
![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 9 Пол: Женский Репутация: ![]() ![]() ![]() |
Помогите,появуста,решить задачу-не могу сдать зачёт!!!
:molitva: "Дана последовательность не более 30 ненулевых целых чисел, последним числом в последовательности является 0. Вве- дите последовательность в одномерный массив и напечатайте в порядке возрастания элементы, сумма цифр в которых находится в интервале от А до В. Использование дополнительных массивов запрещено." ![]() Jane@tlt.ru Сообщение отредактировано: Jane - 19.12.2004 0:54 Прикрепленные файлы ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Jane
А если так: Код Program Lab2_1; var C:array[1..30] of integer; var i,j,n:integer; A,B,S:integer; x, T: integer; begin writeln('vvedite granitci intervala:'); write('A='); readln(A); write('B='); readln(B); n := 0; i := 1; repeat write('vvedite element massiva C[',i,']='); readln(x); i := i + 1; if x > 0 then begin s := 0; T := x; while T > 0 do begin s := s + (T mod 10); T := T div 10; end; if (s > A) and (s < B) then begin n := n + 1; C[n] := x end; end until x = 0; for i:=1 to n-1 do for j:=i+1 to n do if c[i]>c[j] then begin T:=c[i]; c[i]:=c[j]; c[j]:=T end; for i:=1 to n do writeln(c[i]); end. Сообщение отредактировано: volvo - 19.12.2004 14:50 |
Jane |
![]()
Сообщение
#3
|
Группа: Пользователи Сообщений: 9 Пол: Женский Репутация: ![]() ![]() ![]() |
volvo
Большое спасибо,только в этом месте с индексами что-то странное...: n := 0; repeat write('vvedite element massiva C[',n+1,']='); readln(x); ![]() |
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
Jane
Почему странное? Все в порядке... ![]() |
Jane |
![]()
Сообщение
#5
|
Группа: Пользователи Сообщений: 9 Пол: Женский Репутация: ![]() ![]() ![]() |
volvo
Ну...а вместо этого выдаётся C[1]= C[1]= C[1]= ну и т.д..... ![]() |
volvo |
![]()
Сообщение
#6
|
Гость ![]() |
Jane
Посмотри теперь - я подправил. Просто в моей версии число ВООБЩЕ не заносится в массив, если сумма его цифр не попадает в заданный интервал [A .. B]. Сейчас я просто добавил счетчик введенных чисел... |
Jane |
![]()
Сообщение
#7
|
Группа: Пользователи Сообщений: 9 Пол: Женский Репутация: ![]() ![]() ![]() |
volvo
:thanks: Да!!!Теперь всё получается!!!ОГРОМНОЕ СПАСИБО!!! |
Jane |
![]()
Сообщение
#8
|
Группа: Пользователи Сообщений: 9 Пол: Женский Репутация: ![]() ![]() ![]() |
Реорганизуйте массив, исключив все элементы, содержащие повторяющиеся цифры, и сожмите массив влево, упорядочив по убыванию оставшиеся элементы.Нельзя использоавть дополнительные массивы.
Можно заменить Код while T > 0 do наbegin s := s + (T mod 10); T := T div 10; end; Код while T>0 do begin T1:=T mod 10; T:=T div 10; end; if T=T1 then или я глупости пишу???А если да,то что тогда делать после then??? Объясните мне,пожалста... |
![]() ![]() |
![]() |
Текстовая версия | 24.07.2025 1:06 |