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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.03.2013, 11:28   #1
bwitcher
Форумчанин
 
Регистрация: 09.06.2010
Сообщений: 112
По умолчанию

всем привет.
у меня есть код по следующей задаче:
Дано целое число А. Определить сумму четных цифр в числе.
Код:
program N72927501; 
var A:longint; 
    s:byte; 
begin 
  write('Введите число: '); 
  readln(A); 
  s := 0; 
  A := abs(A); 
  while A > 0 do 
  begin 
    if not odd(A) then {или if A mod 2 = 0 then} 
      inc(s, A mod 10); {или s := s + A mod 10;} 
    A := A div 10 
  end; 
  writeln('Сумма чётных цифр = ', s); 
  readln 
end.
не поможете оптимизировать под такое условие:
Сформировать список целых чисел и посчитать сумму четных чисел (очередь)
заранее спасибо

привет.
не поможете код для следующей задачи
Подсчитать сумму всех нечетных чисел от 101 до 301
переделать для
Сформировать список целых чисел и посчитать сумму нечетных чисел (линейные списки)
Код:
uses crt;
var sum,i:integer;
begin
sum:=0;
for i:=101 to 301 do begin
if i mod 2=0 then sum:=sum+i;
end;
writeln('Cумма нечётных элементов=  ',sum);
end.
заранее спасибо

Последний раз редактировалось Stilet; 23.03.2013 в 12:42.
bwitcher вне форума Ответить с цитированием
Старый 23.03.2013, 12:39   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Если не ошибаюсь то так:
Код:
uses crt;
type item=record data:integer; next:^item; end;
var sum,i:integer; itp,it,head:^item;
begin
sum:=0; head=nil; it:=nil;
for i:=101 to 301 do begin
 new(it); if head=nil then head:=it; it^.data:=i;
 if itp=nil then itp:=it else begin itp^.next=it; itp:=it; end;
 if i mod 2=0 then sum:=sum+i;
end;

writeln('Cумма нечётных элементов=  ',sum);

it:=head;
for i:=101 to 301 do begin
 head:=it^.next;
 dispose(it);
 it:=head;
end;

end.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.03.2013, 12:46   #3
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

1. Переделка задачи под другое условие не является оптимизацией.
2. Оптимизировать можно по объему кода, по скорости выполнения, по объему требуемой памяти, но никак не под то условие, которое Вы написали.

Кстати, думаю, что в Вашем задании основное - это умение работать с очередью, реализованной посредством списка.
А потому приведенный Вами код, хоть и вычисляет сумму, но не может быть взят за основу для Вашей задачи.
s-andriano вне форума Ответить с цитированием
Старый 23.03.2013, 16:39   #4
bwitcher
Форумчанин
 
Регистрация: 09.06.2010
Сообщений: 112
По умолчанию

спасибо большое!
а можно еще то же самое с линейных списков на очередь переделать?
bwitcher вне форума Ответить с цитированием
Старый 23.03.2013, 17:18   #5
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

А что такое линейный список, что такое очередь и чем они отличаются?
s-andriano вне форума Ответить с цитированием
Старый 23.03.2013, 17:35   #6
bwitcher
Форумчанин
 
Регистрация: 09.06.2010
Сообщений: 112
По умолчанию

Цитата:
Сообщение от s-andriano Посмотреть сообщение
А что такое линейный список, что такое очередь и чем они отличаются?
Линейный однонаправленный список — это структура данных, состоящая из элементов одного типа, связанных между собой.
О́чередь — структура данных с дисциплиной доступа к элементам «первый пришёл — первый вышел» (FIFO, First In — First Out). Добавление элемента (принято обозначать словом enqueue — поставить в очередь) возможно лишь в конец очереди, выборка — только из начала очереди (что принято называть словом dequeue — убрать из очереди), при этом выбранный элемент из очереди удаляется.
bwitcher вне форума Ответить с цитированием
Старый 23.03.2013, 18:08   #7
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Замечательно, а ответ на третий вопрос?
s-andriano вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дана последовательность из n целых чисел. Найти сумму нечетных элементов этой последовательности.С++ punkvalera Помощь студентам 1 13.05.2012 20:35
Дан массив из 10 целых чисел. Подсчитать сумму квадратов элементов, стоящих на нечетных местах. sanjer21 Паскаль, Turbo Pascal, PascalABC.NET 1 25.04.2012 14:15
список всех четырехзначных нечетных чисел, делящихся без остатка на сумму своих цифр. Kami-sama Общие вопросы C/C++ 2 12.11.2010 17:07
Посчитать сумму всех целых чисел в этом диапазоне LION7777 Фриланс 14 15.06.2010 00:16