Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект лекций_2015.doc
Скачиваний:
36
Добавлен:
03.03.2016
Размер:
532.48 Кб
Скачать

5 Разработка алгоритмов Пример 5.8

Уплотнить строку символов.

Метод.

сдвиг S i+1 … Sn при Si = ”_”

i:=i+1

Sn:=”#”

Алгоритм

i:=1;

Пока S [i] <>#

Пример 5.9

Печать спаренных символов текста

STS:=” ” {старший символ}

пока не конец текста

Пример 5.10

Печать степеней 2 в римской системе счисления.

Изображение Степени двойки

1 I 1 I

5 V 2 II

10 X 4 IIII {просто договоримся обозначать 4 так,

50 L 8 VIII а не IV}

100 C 16 XVI

500 D 32 XXII

1000 M 64 LXIVIIII

MMXXIIII

y:=1; {целые степени двойки}

пока у<5000

вывод

x:=x-1000

вывод

x:=x-100

вывод

x:=x-10

П

если х>=5 то

вывод

x:=x-5;

пока х>=1

вывод ‘I’

x:=x-1

y:=y*2

ример 5.11

Известна итоговая таблица спорт турнира, о каждом участнике сообщена информация: №, название команды, количество выигрышей, ничьих, очки. Найти тройку победителей.

N

B

H

P

1

2

3

4

Максимальное количество участников – 50.

Р=2*В+Н

    1. Исходные данные

N: целое; {количество участников}

Tabl: таблица [N] (NN: целое;

nazv: целое [20];

В: целое;

Н: целое;

Р: целое;)

    1. Ограничения

3<N<50

    1. Результат

место1, место2, место3,: строка [20]

  1. Связь

i є 1..N (место1 = Т[і]. nazv

max (T[j]. B*2+T[i]. H)

1>=j<=N

к є 1..N

к<>i место2:= Т[k]. nazv

max (T[k]. B*2+T[k].H)

F є 1..N

F<>i

F<>k место3:= Т[F]. nazv

max(Т[F]. B*2+ Т[F].H

  1. Метод

max3:= max2

F:=k

max2:=max1

K:=i

max1:=0

если

i:=j

0> max1

max3:=max2

F:=k

max2:=0

если

K:=j

0> max2

max3:=0

F:=j

если

0> max3

0=T[j]. B*2+T[j]. H

j=1..n

  1. Алгоритм

ввод

д

вывод

ввод

ляi:=1 до N

max1=max2=max3=0

для j:=1 до N

O:=T[j].B*2+T[j].H

если O> max 1 то

max 3:=max2; f:=k

max2:=max1; k:=i

max1:=O i:=j

иначе

если O>max2 то

max3:=max2; b:=k;

max2:=O; k:=j;

иначе

если O>max3 то

max3:=O; f:=j;

Алгоритмы упорядочения массивов.

Постановка задачи.

Условие: упорядочить по возрастанию массив вещественных чисел, в массиве N элементов.

    1. Исходные данные

N:целое ( количество элементов )

A:массив[1..N] вещественных

    1. Ограничения

    2. Результаты

A:массив[1..N] вещественных;

    1. Связь

Упорядочить массив методом ”пузырька”.

i N

i

Метод перебора

пр:=a[i] при

a[i]:=a[j] a[j]<a[i]для j=i+1,N для i=1,N-1

a[j]:=пр

Метод пузырька

r:=a[imin]

a[imin]:=a[i]

a[i]:=r

min:=a[j] a[j]<minдля j= i+1,N

imin:=jдля i=1,N-1

min:=a[i]

imin:=i