Практическая работа №5 \"Работа с циклами\" icon

Практическая работа №5 "Работа с циклами"



НазваниеПрактическая работа №5 "Работа с циклами"
Дата конвертации26.08.2012
Размер22.76 Kb.
ТипПрактическая работа
1. /Практическая работа 5.docПрактическая работа №5 "Работа с циклами"

Практическая работа №5

“Работа с циклами”


Цель работы: сформировать навыки по оптимизации циклов.

Перечень оборудования: IBM PC / AT 386 – 486

Последовательность выполнения работы:

  1. Составить программу с использованием циклов

  2. Проанализируйте составленную программу, исключив циклы по возможности.

  3. Организуйте циклы и оптимизируйте их работу

Контрольные вопросы:

  1. В каком случае использовать цикл менее эффективно, чем программировать последовательно?

  2. Как следует располагать вложенные циклы, чтобы сократить число инициирований и проверок цикла?

  3. Какие области программы наиболее выгодны для оптимизации?

  4. Какое преобразование цикла называется разверткой, сжатием, разъединением?


Методические указания: даны 3 одномерных массива. Начальное состояние каждого массива задается в программе либо в разделе констант. Сформировать двумерный массив из элементов одномерных массивов согласно варианту, размерность массива N*M, где N=M и равно количеству элементов в одномерном массиве.


SQR (A[i])-SQRT(C[i])*ABS(C[j])


Неоптимизированная программа:


uses crt;

const

n=10;

a:array [1..n] of integer = (-9,11,0,38,15,-45,4,-7,4,6);

b:array [1..n] of integer = (6,3,8,3,7,2,3,14,5,6);

c:array [1..n] of integer = (5,6,-85,21,6,33,12,-8,43,33);

var mas:array [1..n,1..n] of real;

i,j:byte;

begin

clrscr;

for i:=1 to n do

writeln(a[i],b[i]:8,c[i]:8);

for j:=1 to n do

begin

for j:= 1 to n do

begin

mas[i,j]:=sqr(a[i])-sqrt(b[i])*abs(c[j]);

write(mas[i,j]:7:1);

end;

writeln;

end;

end.


Оптимизированная программа:


uses crt;

const

n=10;

a:array [1..n] of integer = (-9,11,0,38,15,-45,4,-7,4,6);

b:array [1..n] of integer = (6,3,8,3,7,2,3,14,5,6);

c:array [1..n] of integer = (5,6,-85,21,6,33,12,-8,43,33);

var mas:array [1..n,1..
n] of real;

i,j:byte;

sqr_a:integer;

sqrt_b:real;

begin

clrscr;

for i:=1 to n do

writeln(a[i],b[i]:8,c[i]:8);

for j:=1 to n do

begin

sqr_a:=a[i]*a[i];

sqrt_b:=sqrt(b[i]);

for j:= 1 to n do

begin

mas[i,j]:=sqr_a-sqrt_b*abs(c[j]);

write(mas[i,j]:7:1);

end;

writeln;

end;

end.


Более оптимизированная программа:


uses crt;

const

n=10;

a:array [1..n] of integer = (-9,11,0,38,15,-45,4,-7,4,6);

b:array [1..n] of integer = (6,3,8,3,7,2,3,14,5,6);

c:array [1..n] of integer = (5,6,-85,21,6,33,12,-8,43,33);

var mas:array [1..n,1..n] of real;

i,j:byte;

sqr_a:integer;

sqrt_b:real;

begin

clrscr;

for j:=1 to n do

begin

writeln(a[i],b[i]:8,c[i]:8); <----

sqr_a:=a[i]*a[i]; <----

sqrt_b:=sqrt(b[i]); <----

for j:= 1 to n do

begin

mas[i,j]:=sqr_a-sqrt_b*abs(c[j]); <----

write(mas[i,j]:7:1);

end;

writeln;

end;

end.


Ответы на контрольные вопросы:

  1. При использовании циклов значительная часть времени тратится на инициирование и проверку индекса цикла, поэтому при небольшом количестве повторений, рациональнее программировать последовательно.

  2. Чтобы сократить число инициирований и проверок цикла, внешние циклы должны иметь наименьшее число итераций, по отношению к внутренним (вложенным).

  3. Для оптимизации наиболее выгодны критические области программы (наиболее часто используемые).

  4. Разверткой называется метод оптимизации, при котором один и тот же оператор, стоящий в теле цикла, записывается для нескольких различных значений управляющей переменной, и таким образом сокращается число итераций.

Сжатием называется, разъединением?



Похожие:

Практическая работа №5 \"Работа с циклами\" iconДокументы
1. /Pril4-1/Контрольная работа Поиск в Интернет.doc
2. /Pril4-1/Правила...

Практическая работа №5 \"Работа с циклами\" iconДокументы
1. /Практическая работа/График.doc
2. /Практическая...

Практическая работа №5 \"Работа с циклами\" iconКонспект открытого урока русского языка
Проблемный диалог, групповая работа, работа в парах, самостоятельная работа, работа с учебником, фронтальная работа, использование...
Практическая работа №5 \"Работа с циклами\" iconДокументы
1. /Практическая работа 1.doc
2. /Практическая...

Практическая работа №5 \"Работа с циклами\" iconУрок биологии в 6 классе по теме: «Соцветия»
Методы: фронтальная работа, работа в группах, индивидуальная работа, игра «Простое сложное», работа с тестом, разгадывание кроссворда,...
Практическая работа №5 \"Работа с циклами\" iconДокументы
1. /МОЕ/Методы прогнозирования риска.doc
2. /МОЕ/Практическая...

Практическая работа №5 \"Работа с циклами\" iconДокументы
1. /Практическая работа 1.doc
2. /Практическая...

Практическая работа №5 \"Работа с циклами\" iconДокументы
1. /Практическая работа ь1.doc
2. /Практическая...

Практическая работа №5 \"Работа с циклами\" iconПрактическая работа 2

Практическая работа №5 \"Работа с циклами\" iconДокументы
1. /Практическая работа 8.doc
2. /Практическая...

Практическая работа №5 \"Работа с циклами\" iconДокументы
1. /Практическая работа 1.doc
2. /Практическая...

Разместите кнопку на своём сайте:
Документы


База данных защищена авторским правом ©podelise.ru 2000-2014
При копировании материала обязательно указание активной ссылки открытой для индексации.
обратиться к администрации
Документы

Разработка сайта — Веб студия Адаманов