Здравствуйте, гость ( Вход | Регистрация )
18 Dec 2008, 18:23
Сообщение
#1
|
|
|
Newbie Сообщений: 31 Спасибо сказали: 0 раз |
люди помогите дорешать задачу:
Сформировать файл из натуральных чисел. Разработать функцию, вычисляющую среднее арифметическое элементов списка, построенного из элементов файла. CODE program StackDemo; uses crt; const AFileName = 'file.txt'; type PIntStack = ^TIntStack; TIntStack = record Data: Integer; Next: PIntStack; end; stek= PIntStack; procedure Init(var AStack: PIntStack); begin AStack := nil; end; procedure Done(var AStack: PIntStack); var P: PIntStack; begin while (AStack <> nil) do begin P := AStack^.Next; dispose(AStack); AStack := P; end; end; procedure Push(AData: Integer;var AStack: PIntStack); var P: PIntStack; begin P := nil; New(P); if (P = nil) then Exit; P^.Data := AData; P^.Next := AStack; AStack := P; end; function Pop(var AData: Integer; var AStack: PIntStack): Boolean; var P: PIntStack; begin if (AStack = nil) then begin Pop := False; Exit; end; P := AStack^.Next; AData := AStack^.Data; dispose(AStack); AStack := P; Pop := True; end; var F: file of integer; S: PIntStack; X, Z, Y: Integer; q:real; begin clrscr; Assign(F, 'file.txt'); rewrite(F); WriteLn('vvedite chisla'); repeat readln(x); write(F,x); until x=0; close(F); Assign(F, 'file.txt'); Reset(F); while not Eof(F) do begin Read(F, X); Push(X, S); end; Close(F); Z := 0; Y := 0; while Pop(X, S) do begin Y := Y + X; Z := Z + 1; end; q := Y/Z; WriteLn('srednee ar: ', q); done(s); readkey; end. в принципе задача решена, но не доделана... мне нужно заталкать вот это CODE Z := 0; Y := 0; while Pop(X, S) do begin Y := Y + X; Z := Z + 1; end; q := Y/Z; в процедуру, т.к. в условии сказано.. и ещё нужно определить конец ввода, т.к. если сделать его =0, то ноль тоже будет вычисляться... помогите плиииз... Паапрасил бы оформлять посты по-человечески. //Неизвестный Модератор |
|
|
|
![]() |
19 Dec 2008, 09:35
(Сообщение отредактировал Chrono Syndrome - 19 Dec 2008, 11:53)
Сообщение
#2
|
|
|
Newbie Сообщений: 31 Спасибо сказали: 0 раз |
на самом деле нам динамику плохо объяняли, точнее вообще о ней речи не было.... а препод - это люди настроение, захотят помогут, а не захотят... пошлют куда подальше... поэтому я и братился нафорум, но я задачи "неотредактироваными" не здаю, сначала разбираюсь, а потом уже....
Добавлено ([mergetime]1229668534[/mergetime]): Tervyn помоги плиз с езё одной просьбой, если не затруднит.... Код program StackDemo; uses crt; const AFileName = 'file.txt'; type PIntStack = ^TIntStack; TIntStack = record Data: Integer; Next: PIntStack; end; stek= PIntStack; procedure Init(var AStack: PIntStack); begin AStack := nil; end; procedure Done(var AStack: PIntStack); var P: PIntStack; begin while (AStack <> nil) do begin P := AStack^.Next; dispose(AStack); AStack := P; end; end; procedure Push(AData: Integer;var AStack: PIntStack); var P: PIntStack; begin P := nil; New(P); if (P = nil) then Exit; P^.Data := AData; P^.Next := AStack; AStack := P; end; function Pop(var AData: Integer; var AStack: PIntStack): Boolean; var P: PIntStack; begin if (AStack = nil) then begin Pop := False; Exit; end; P := AStack^.Next; AData := AStack^.Data; dispose(AStack); AStack := P; Pop := True; end; function call(var AStack: PIntStack): real; var X, Y, Z: Integer; begin Z := 0; Y := 0; while Pop(X, AStack) do begin Y := Y + X; Z := Z + 1; end; call := Y/Z; end; var ch:char; F: file of integer; S: PIntStack; X: Integer; begin clrscr; Assign(F, 'file.txt'); rewrite(F); WriteLn('vvedite chisla (nol - okonchanie vvoda)'); repeat ReadLn(X); Ch := 'N'; if X = 0 then begin WriteLn('hotite zakonchit vvod? (y/n)'); Ch := ReadKey; if (Ch = 'Y') or (Ch = 'y') then Break; end; Write(F, X); until ((X = 0) and ((Ch = 'y') or (Ch = 'Y'))); close(F); Assign(F, 'file.txt'); Reset(F); while not Eof(F) do begin Read(F, X); Push(X, S); end; Close(F); WriteLn('srednee ar: ', call(s)); done(s); readkey; end. она выводит число не "чистое" , т.е. если сделать call(s:3:2); она "ругается", ка это делать? пробовал переменной присвоить значение ф-и, но чёт не получается.... |
|
|
|
Palpalich стеки и очереди в паскале (доделать) 18 Dec 2008, 18:23
Tervyn Ну запихнуть в функцию не проблема, добавляется фу... 18 Dec 2008, 19:27
Palpalich Tervyn я тебе по гроб жизни обязан буду!!... 18 Dec 2008, 19:35
Tervyn Да мелочи) 18 Dec 2008, 19:38
Shaidar Haran Цитата(Tervyn @ 18 Dec 2008, 21:38)Да мелочи)... 18 Dec 2008, 20:12
Chrono Syndrome Да пусть бежит, пока ведет себя пристойно. Нам что... 18 Dec 2008, 20:32
Tervyn Шайдар, ну разок помочь сдать лабы и получить заче... 18 Dec 2008, 20:39
Shaidar Haran Я в данный момент веду как раз то, о чем он просит... 18 Dec 2008, 21:05
Tervyn Шайдар, если предмет не является профилирующим и д... 18 Dec 2008, 21:48
Shaidar Haran Цитата(Tervyn @ 18 Dec 2008, 23:48)Шайдар, ес... 18 Dec 2008, 21:54
Tervyn Если не обращает на предмет, то да. А если "п... 18 Dec 2008, 22:12
Tervyn Можно попробовать так (должно сработать):
КодWrite... 19 Dec 2008, 10:01
Palpalich спасибо, но я сам допёр до второго варианта.. зачё... 19 Dec 2008, 12:11
Dofur Думаю вряд ли Tervyn согласится делать лабы того ж... 19 Dec 2008, 20:09
gilex друзья у меня к вам просьба: динамику вообще почти... 26 Dec 2008, 00:43
Монца Динамика - это раздел физики 26 Dec 2008, 10:27
gamecreator Монца, учим матчасть 26 Dec 2008, 19:13![]() ![]() |
| Текстовая версия | Сейчас: 26 February 2026 - 18:57 |
|
Copyright by Алексей Крючков
Programming by Degtyarev Dmitry |
|