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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.01.2009, 13:28   #1
Evgenii
Форумчанин
 
Аватар для Evgenii
 
Регистрация: 04.01.2008
Сообщений: 201
По умолчанию Как можно улучшить эффективность и качество ПП?

Такое задание по курсу технологии программирования:
дан текст программы (он прикреплен к теме в формате txt). Программа создает динамический список неповторяющихся целых чисел в диапазоне от -50 до 50, обеспечивает прямой и обратный вывод элементов списка, должна посчитать сумму 1+n, 2+n-1,...i+n-1+1,...n/2+n/2+1
Необходимо улучшить эффективность и качество данной программы, что увеличит скорость ее выполнения, устранит возможные недостатки и возможно улучшит другие характеристики...
Если кто заметит в ней какие-либо недостатки или фрагменты которые можно улучшить (например операцию умножения заменить на смещение и т.д.), огромная просьба пояснить мне в чем заключается улучшение, как его реализовать и какой фрагмент кода можно преобразовать
Вложения
Тип файла: txt программа.txt (1.1 Кб, 137 просмотров)
Evgenii вне форума Ответить с цитированием
Старый 29.01.2009, 14:04   #2
Neymexa
Proffesional
Форумчанин
 
Аватар для Neymexa
 
Регистрация: 18.11.2008
Сообщений: 417
По умолчанию качать каждый раз ...

Цитата:
Сообщение от Evgenii Посмотреть сообщение
Такое задание по курсу технологии программирования:
дан текст программы (он прикреплен к теме в формате txt). Программа создает динамический список неповторяющихся целых чисел в диапазоне от -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.
О, степь родимая, как я скучаю по тебе...
Neymexa вне форума Ответить с цитированием
Старый 29.01.2009, 14:07   #3
Evgenii
Форумчанин
 
Аватар для Evgenii
 
Регистрация: 04.01.2008
Сообщений: 201
По умолчанию

а чем лучше то?
Evgenii вне форума Ответить с цитированием
Старый 29.01.2009, 15:12   #4
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

К автору. А Вы программу прогоняли? У Вас все нормально выводит. Числа из интервала -50+50 ? А то тип чисел объявлен вещественный, а генерируются целые числа.
puporev вне форума Ответить с цитированием
Старый 29.01.2009, 15:35   #5
sim_84
Пользователь
 
Регистрация: 17.01.2009
Сообщений: 18
По умолчанию

Напиши класс для списка
sim_84 вне форума Ответить с цитированием
Старый 29.01.2009, 16:22   #6
Evgenii
Форумчанин
 
Аватар для Evgenii
 
Регистрация: 04.01.2008
Сообщений: 201
По умолчанию

прямой вывод: -2.0 35.0 45.0 -39.0 -22.0 45.0
+ + + + + +
обратный ввод: 45.0 -22.0 -39.0 45.0 35.0 -2.0
___________________________________ ________________________________

результат: 43.0 13.0 6.0 6.0 13.0 43.0

Это результат работы программы. числа генерируются от -50 до 49. То что они объявлены как вещественные-нужно исправить, т.к. в условии сказано что в программе создается список целых чисел. Это одна из ошибок
Evgenii вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как улучшить форум. Гриха О форуме и сайтах клуба 2798 30.11.2011 03:03
Качество печати Македонский Общие вопросы Delphi 2 14.01.2008 22:46
RichEdit. как можно вставлять картинку туда? как можно Скрол програмно вниз двигать? Svop Компоненты Delphi 7 28.11.2006 21:07