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

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

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

 
 Ответить  Открыть новую тему 
> Двумерные массивы:сумма цифр чисел..., думала,писала,но совсем запуталась :(
сообщение
Сообщение #1





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

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


Помогите,появуста,решить задачу-не могу сдать зачёт!!!
:molitva:
"Дана последовательность не более 30 ненулевых целых
чисел, последним числом в последовательности является 0. Вве-
дите последовательность в одномерный массив и напечатайте в порядке возрастания элементы, сумма цифр в которых находится в интервале от А до В. Использование дополнительных массивов запрещено."
unsure.gif
Jane@tlt.ru

Сообщение отредактировано: Jane -


Прикрепленные файлы
Прикрепленный файл  LAB2_1.PAS ( 755 байт ) Кол-во скачиваний: 258
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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 -
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3





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

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


volvo
Большое спасибо,только в этом месте с индексами что-то странное...:

n := 0;
repeat
write('vvedite element massiva C[',n+1,']=');
readln(x);
mellow.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Jane
Почему странное? Все в порядке... smile.gif Я же вначале N присвоил 0, вот чтобы у тебя не выдавалось сообщение 'vvedite element massiva C[0]=', я и вывожу n+1
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5





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

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


volvo
Ну...а вместо этого выдаётся C[1]=
C[1]=
C[1]=
ну и т.д..... huh.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






Jane
Посмотри теперь - я подправил. Просто в моей версии число ВООБЩЕ не заносится в массив, если сумма его цифр не попадает в заданный интервал [A .. B]. Сейчас я просто добавил счетчик введенных чисел...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7





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

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


volvo
:thanks:
Да!!!Теперь всё получается!!!ОГРОМНОЕ СПАСИБО!!!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8





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

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


Реорганизуйте массив, исключив все элементы, содержащие повторяющиеся цифры, и сожмите массив влево, упорядочив по убыванию оставшиеся элементы.Нельзя использоавть дополнительные массивы.

Можно заменить
Код
      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???
Объясните мне,пожалста...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





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