Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.09.2011, 15:48   #1
stupidstudent
 
Аватар для stupidstudent
 
Регистрация: 09.09.2011
Сообщений: 7
По умолчанию подкорректируйте код

В общем мне дали такую задачку (pascal):
Записать в одномерный массив, те числа из числовой последовательности введенной пользователем, у которых, сумма цифр стоящих на четных позициях от конца, у которых эта сумма нечетная. С использованием function или procedure.

Вот что у меня получилось правда без одномерного массива, да и работает:
Код:
uses crt;
var n, s4, i, x : integer;         
function sum(x : integer ):integer; 
var h, s : integer;
BEGIN
     s := 0;
     while ( x > 0 ) do
           begin
           h := x mod 10;
           s := s + h;
           x := x div 10;
           end;
           sum := s;
           end;
                                  
           begin
           clrscr;
           s4 := 0;
           write ('kol-vo 4isel - ');
           readln(n);
                     for i := 1 to n do
                         begin
                         write ('vvedite ',i,'-oe 4islo - ');
                         readln(x);
                  if sum(x) mod 2 = 1 then
                                    s4 := s4 + x;
                         end;
                                    write ('Sum = ', s4);
readln;

END.
но с одномерным массивом ничего не выходит...
что здесь подредактировать, чтобы она работала с одномерным массивом?

Последний раз редактировалось stupidstudent; 09.09.2011 в 15:51.
stupidstudent вне форума Ответить с цитированием
Старый 09.09.2011, 15:51   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Дык массив-то где?)
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 09.09.2011, 15:52   #3
stupidstudent
 
Аватар для stupidstudent
 
Регистрация: 09.09.2011
Сообщений: 7
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Дык массив-то где?)
Я же написал, что получилось без массива, а с массивом не выходит...
stupidstudent вне форума Ответить с цитированием
Старый 09.09.2011, 15:55   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Ну покажите, что не выходит, тут же нет телепатов. Или код не ваш?)
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 09.09.2011, 16:03   #5
stupidstudent
 
Аватар для stupidstudent
 
Регистрация: 09.09.2011
Сообщений: 7
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Ну покажите, что не выходит, тут же нет телепатов. Или код не ваш?)
говнокод

Код:
program noname;
 
uses crt;
 
var a : array [1..100] of integer;
i, m, n, b, j, s, k, f : integer;

function sum(n : integer; s : integer):integer;
var h,  k : integer;

BEGIN
s := 0;
k := 0;
while  n > 0  do
 begin
  h := n mod 10;
  k := k + 1;
  if k mod 2 = 0 then  s := s + h;
  n := n div 10;
 end;
sum := s;
end;
                                 
 
begin
clrscr;
j := 1;
write('Vvedite kol-vo chisel ');
readln(m);
 
 
for i:=1 to m do
    begin
    write('vvedite chislo ');
    readln(n);
    end;
 
 
        write(sum(n,s));
 
             for i := 1 to m do
                     begin
                     a[i] := n;
                     j := j + 1;
                     end;
 
 
          for i := 1 to m do
          begin
               write (a[3], ' ');
          end;
 
readln;
END.
stupidstudent вне форума Ответить с цитированием
Старый 09.09.2011, 16:20   #6
Step_UA
Форумчанин
 
Аватар для Step_UA
 
Регистрация: 09.06.2011
Сообщений: 388
По умолчанию

Код:
Uses crt;
var n, i, x : integer;    
a : array [1..100] of integer; j:integer;    
function sum(x : integer ):integer; 
var h, s : integer;
BEGIN
     s := 0;
     while ( x > 0 ) do
           begin
           h := x mod 10;
           s := s + h;
           x := x div 10;
           end;
           sum := s;
           end;
                                  
           begin
           clrscr;
           s4 := 0;
           write ('kol-vo 4isel - ');
           readln(n);
           j:=0;
                     for i := 1 to n do
                         begin
                         write ('vvedite ',i,'-oe 4islo - ');
                         readln(x);
                  if sum(x) mod 2 = 1 then
                                   begin
                                    inc(j);
                                    a[j]:=x;
                                   end;
                         end;
                     writeln('Massiv:');
                     for i:=1 to j do writeln(a[i]);
readln;

END.
PS код не проверял ...
на неконкретные вопросы даю неконкретные ответы ...
Step_UA вне форума Ответить с цитированием
Старый 09.09.2011, 16:24   #7
stupidstudent
 
Аватар для stupidstudent
 
Регистрация: 09.09.2011
Сообщений: 7
По умолчанию

Цитата:
Сообщение от Step_UA Посмотреть сообщение
Код:
 код
PS код не проверял ...
спасибо! все работает.
stupidstudent вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ПОДКОРРЕКТИРУЙТЕ ПАДЕЖИ Dilmur Паскаль, Turbo Pascal, PascalABC.NET 0 10.06.2010 18:36
подкорректируйте пожалуйста прогу slay09 Общие вопросы C/C++ 4 16.06.2009 20:38
Подкорректируйте код, плиззз... logoleha Общие вопросы Delphi 2 01.06.2009 02:24
подкорректируйте програмку апрол Паскаль, Turbo Pascal, PascalABC.NET 1 14.12.2008 00:27