Страница 1 из 1

Госэкзамен. кто может, помогите с задачей на паскале. очень прошу!

Добавлено: 05 апр 2008, 13:13
Upfort
Списо состоит из слкдующей структуры:

- вещественное число
- строка из 20 символов
- указатель на следующий элемент списка (в последнем элементе это поле равно NIL ).
Элементы списка хранятся в динамически распределяемой памяти. (То есть, место для них выделяется процедурой new). Составить процедуру вычисления суммы числовых полей всех элементов списка. Процедуре должен передоваться адрес начала списка.

очень прошу вас помочь, 8-го госы

Re: Госэкзамен. кто может, помогите с задачей на паскале. очень прошу!

Добавлено: 05 апр 2008, 17:03
drummer

Код: Выделить всё

procedure summ(p:Ptvoi_tip);
    begin
        sum:=0;
        while p<>nil do
            begin
                sum:=sum+p^.number;
                p:=p^.next;
            end;
    end;

Re: Госэкзамен. кто может, помогите с задачей на паскале. очень прошу!

Добавлено: 05 апр 2008, 17:43
Upfort
это и вся задача?
просто я вообще не шарю(

Re: Госэкзамен. кто может, помогите с задачей на паскале. очень прошу!

Добавлено: 05 апр 2008, 17:50
Upfort
восьмого госы( я с этим пока разберусь...
я в этом дуб-дубом((
тут столько всего еще надо успеть, пожалуйста помогите с задачей. очень надо!

Re: Госэкзамен. кто может, помогите с задачей на паскале. очень прошу!

Добавлено: 05 апр 2008, 22:55
MOTOCoder
Upfort писал(а):это и вся задача?
просто я вообще не шарю(
В принципе, приведенная процедура полностью соответствует поставленной задаче, но возможно потребуется описать тип данных:
[syntax='Delphi']
type
PListItem=^TListItem;
TListItem=record
Number:real;
sData:string[20];
Next:PListItem;
end;
[/syntax]

Тогда заголовок процедуры примет вид:
procedure summ(P:PListItem);

А вообще, советую описать эту подпрограмму как функцию:
[syntax='Delphi']
function summ(p:PListItem):real;
var
sum:real;
begin
sum:=0;
while p<>nil do
begin
sum:=sum+p^.number;
p:=p^.next;
end;
summ:=sum;
end;
[/syntax]

Re: Госэкзамен. кто может, помогите с задачей на паскале. очень прошу!

Добавлено: 06 апр 2008, 02:02
drummer
Я бы тоже делал функцию, но в условии было сказано
процедуру

Re: Госэкзамен. кто может, помогите с задачей на паскале. очень прошу!

Добавлено: 06 апр 2008, 11:27
Upfort
спасибо вам большое, за помощь! )
вы мне очень помогли.

Re: Госэкзамен. кто может, помогите с задачей на паскале. очень прошу!

Добавлено: 06 апр 2008, 12:31
Serge_Bliznykov
drummer,
&quot писал(а):Я бы тоже делал функцию, но в условии было сказано
Цитата:
процедуру
ну я бы результат процедуры всё таки вернул через параметер - использование глобальных переменных - некузявно!

Код: Выделить всё

procedure summ(p:PListItem, var Sum:real);
begin 
  sum:=0; 
  while p<>nil do 
  begin  
    sum:=sum+p^.number;  
    p:=p^.next; 
  end; 
end;

Re: Госэкзамен. кто может, помогите с задачей на паскале. очень прошу!

Добавлено: 07 апр 2008, 01:57
drummer
зато будет чуточку быстрей работать

Re: Госэкзамен. кто может, помогите с задачей на паскале. очень прошу!

Добавлено: 07 апр 2008, 11:41
Хыиуду
Не думаю, что в учебных задачах критична скорость работы