- •1.Основные компоненты программного обеспечения и их связь с аппаратурой. Ретроспектива развития программирования.
- •2 Этапы решения задач на эвм
- •3 Основные типы данных и структуры данных в программировании
- •3.1.1 Арифметические типы
- •3.1.2 Логический тип
- •3.1.3 Символьный тип
- •4 Методы решения задач программирования
- •5 Разработка алгоритмов Пример 5.8
- •Пример 5.9
- •Пример 5.10
- •6 Кодирование алгоритмов на языке си
- •- Семантические;
- •Тело директивы
- •Имя аргумента
- •Оператор
- •6.4.1 Имена переменных Имена переменных могут состоять из букв (только из латинского алфавита), цифр и символа подчеркивания, приравненного к букве. Начинаться имя должно с буквы.
- •Пример 6.3:
- •6.4.2 Типы и размеры данных
- •6.4.3 Константы
- •Пример 6.4:
- •Пример 6.5:
- •Пример 6.6:
- •Пример 6.7:
- •Пример 6.8:
- •7 Декларации в си
- •8 Операторы в языке си
- •9 Управление в си
- •10 Указатели и массивы
- •Литерные указатели
- •11 Структуры в языке си
- •Структуры, вложенные друг в друга
- •Пример 11.10
- •12 Функции и структура программы
- •Аппарат формальних і фактичних аргументів Приклад 12.4
- •Опис прототипу функції
- •Приклад 12.5
- •13 Передача аргументов
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
Известна итоговая таблица спорт турнира, о каждом участнике сообщена информация: №, название команды, количество выигрышей, ничьих, очки. Найти тройку победителей.
N |
B |
H |
P |
1 2 3 4 |
… |
… |
… |
Максимальное количество участников – 50.
Р=2*В+Н
Исходные данные
N: целое; {количество участников}
Tabl: таблица [N] (NN: целое;
nazv: целое [20];
В: целое;
Н: целое;
Р: целое;)
Ограничения
3<N<50
Результат
место1, место2, место3,: строка [20]
Связь
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
Метод
-
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
Алгоритм
ввод
д
вывод
ввод
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 элементов.
Исходные данные
N:целое ( количество элементов )
A:массив[1..N] вещественных
Ограничения
Результаты
A:массив[1..N] вещественных;
Связь
Упорядочить массив методом ”пузырька”.
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