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

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

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

> Как можно улучшить эффективность и качество ПП?
сообщение
Сообщение #21


Бывалый
***

Группа: Пользователи
Сообщений: 205
Пол: Мужской
Реальное имя: Евгений

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


Такое задание по курсу технологии программирования:
дан текст программы (Pascal). Программа создает динамический список неповторяющихся целых чисел в диапазоне от -50 до 50, обеспечивает прямой и обратный вывод элементов списка, должна посчитать сумму 1+n, 2+n-1,...i+n-1+1,...n/2+n/2+1
Необходимо улучшить эффективность и качество данной программы, что увеличит скорость ее выполнения, устранит возможные недостатки и возможно улучшит другие характеристики...
Если кто заметит в ней какие-либо недостатки или фрагменты которые можно улучшить (например операцию умножения заменить на смещение и т.д.), огромная просьба пояснить мне в чем заключается улучшение, как его реализовать и какой фрагмент кода можно преобразовать, возможно есть чтото лишнее в коде...

{построение динамического списка }
Program din;
uses crt;
type tpo=^tn; tn=record x:real; p1,p2:tpo; end;
var s,b:tpo; f,k:pointer;
i,n,x,dd:integer; z:real;

begin
clrscr; n:=6; dd:=9;
{создание списка }
new(s); randomize; z:=random(100)-50; s^.x:=z; f:=s; s^.p2:=nil;
for i:=1 to n-1 do begin new(b); z:=random(100)-50; b^.x:=z;
s^.p1:=b; b^.p2:=s; s:=b; end;
s^.p1:=nil; k:=s;

textcolor(13);
Write(' прямой вывод: ');
s:=f; x:=18;
while s<>nil do
begin gotoxy(x,wherey); write(s^.x:1:1); s:=s^.p1; x:=x+dd;
end;
writeln;
x:=20;
for i:=1 to N do begin gotoxy(x,wherey); write('+'); x:=x+dd;
end;
writeln;

Write('обратный ввод: ');
b:=k; x:=18;
while b<>nil do
begin gotoxy(x,wherey); write(b^.x:1:1); b:=b^.p2; x:=x+dd;
end;
x:=wherex;
writeln; textcolor(11);
for i:=1 to x do begin gotoxy(i,wherey); write('_'); end;
writeln;
writeln;
Write(' результат: ');
s:=f; b:=k; x:=18;
while s<>nil do
begin z:=s^.x+ b^.x; gotoxy(x,wherey); write(z:1:1);
s:=s^.p1; b:=b^.p2; x:=x+dd; end;
readkey;
end.
;
end.


Тегами пользоваться не забывай

Сообщение отредактировано: volvo -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
1147   Как можно улучшить эффективность и качество ПП?   29.01.2009 18:15
volvo   Во-первых, в твоем коде я не увидел проверку на по…   29.01.2009 18:33
1147   Получается что программа содержит эти 2 недочета, …   29.01.2009 18:48
volvo   Для начале надо создать корректно (а не кое-как) р…   29.01.2009 19:05
1147   Большое спасибо за полезные советы Volvo, с осталь…   29.01.2009 19:10
1147   Если мы список заменим на массив, как это поможет …   31.01.2009 10:15
volvo   Если мы список заменим на массив - это поможет зна…   31.01.2009 17:29
1147   type подойдет для того чтобы избавиться от gotoxy?…   31.01.2009 17:39
volvo   Смотри внимательно, что изменилось в программе: Pr…   31.01.2009 18:23
1147   :good: Огромное спасибо volvo, этого разумеется хв…   31.01.2009 18:43
1147   Последний вопрос у меня, но не столько по самой пр…   1.02.2009 15:27
volvo   Твоя программа выполняется слишком быстро, чтобы з…   1.02.2009 15:50
1147   {$N+} procedure ReadTSC(Var counter : Comp);…   1.02.2009 18:00
volvo   Нет-нет... У тебя здесь - основная программа. Проц…   1.02.2009 18:09
1147   Получается таким образом {$N+} procedure Read…   1.02.2009 18:46
1147   Так, ну с этим вопросом я разобрался, вот только т…   1.02.2009 20:22
volvo   Значит, что-то сделал не так... У меня ничего не с…   1.02.2009 20:51
1147   а почему значение времени выполнения программы каж…   1.02.2009 21:47
volvo   Потому что такты - вещь 1) очень чувствительная; 2…   1.02.2009 21:55
1147   да, у меня windows. Но тогда получается что в резу…   1.02.2009 21:59
volvo   Делай среднее арифметическое. Способ с GetTime, кс…   1.02.2009 22:13
1147   Еще раз хочу поблагодарить тебя volvo, твоя помощь…   2.02.2009 13:44


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

 





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