Введение. 2
Книги по алгоритмам.. 2
Виды алгоритмов. 2
Парадигмы программирования. 2
Простой пример структурного программирования. 3
Задача. 3
Функции для тестирования. 4
Поиск индекса максимального элемента главной диагонали. 5
Поиск индекса максимального элемента побочной диагонали. 6
Обмен максимальными элементами. 6
Функция main. 6
Языки программирования. 7
Основные конструкции. 7
Производные конструкции. 7
Функции. 8
Типы данных и операторы.. 8
Операторы (арифметические) 8
Более строгий способ построения программ.. 9
Задача нахождения НОД.. 9
Прямой способ. 9
Изучение предметной области. 10
Более строгий алгоритм.. 10
Построение цикла. 11
Проверка правильности. 11
Рекуррентные функции. 12
Примеры рекуррентных функций. 12
Преобразование рекуррентных функций в цикл. 12
Оформление программ.. 13
Оформление кода. 13
Комментарии. 14
Макросы.. 14
Диагностические сообщения. 14
Тестирование. 14
Э. Дейкстра Дисциплина программирования
Ю. Вишняков и др. Простое и сложное в программировании
А. Ахо, Дж. Хопкрофт, Дж. Ульман Построение и анализ вычислительных алгоритмов
Т. Кормен, Ч. Лейзер, Р. Ривест Алгоритмы. Построение и анализ
Д. Кнут Искусство программирования.
Вычислительные алгоритмы с обычной математикой
Алгоритмы обработки данных
Вычислительные алгоритмы с дискретной математикой
Алгоритмы со “сложной структурой”
Структурное программирование
Функциональное программирование
Объектно-ориентированное программирование
Задача: Поменять максимальные элементы стоящие на главной и побочной диагоналях матрицы.
Решение:
· Ввести матрицу
· Найти индекс максимального элемента главной диагонали
· Найти индекс максимального элемента побочной диагонали
· Поменять местами элементы
Найти индекс максимального элемента:
· Индекс максимального элемента ← 1, 1
· Максимальный элемент ← элемент с индексом 1, 1
· Для всех элементов начиная со 2:
o Если текущий элемент больше максимального
§ Индекс максимального элемента ← индекс текущего элемента
§ Максимальный элемент ← элемент с текущим индексом
Найти индекс максимального элемента побочной диагонали: Аналогично
Поменять элементы местами:
· Временный элемент ← первые элемент
· Первый элемент ← второй элемент
· Второй элемент ← временный элемент
#include "stdio.h"
#include "stdlib.h"
int n = 8;
int a[8][8];
void RandMatrix();
void PrintMatrix();
int main()
{
srand(1);
RandMatrix();
printf("\n Source matrix \n");
PrintMatrix();
getchar();
}
void RandMatrix()
// Заполняет матрицу а размером n*n случайным образом
{
int i, j;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
a[i][j]=rand();
}
void PrintMatrix()
// Печатает матрицу целых чисел а размером n*n
{
int i, j;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
printf("%5i ", a[i][j]);
printf("\n");
}
}
int n = 8;
int a[8][8];
int MaxMain, MaxSide;
void RandMatrix();
void PrintMatrix();
int FindMaxMainDiag();
int main()
{
RandMatrix();
printf("\n Source matrix \n");
PrintMatrix();
MaxMain = FindMaxMainDiag();
printf("MaxMain %i\n", MaxMain);
getchar();
}
int FindMaxMainDiag()
// Возвращает индекс максимального элемента главной диагонали
// матрицы a размером n*n
{
int i;
int IndexMax = 0;
int Max = a[0][0];
for(i=1;i<n;i++)
if (a[i][i] > Max)
{
IndexMax = i;
Max = a[i][i];
}
return IndexMax;
}
int FindMaxSideDiag()
// Возвращает индекс максимального элемента побочной диагонали
// матрицы a размером n*n
{
int i;
int IndexMax = 0;
int Max = a[0][7];
for(i=1;i<n;i++)
if (a[i][n-i-1] > Max)
{
IndexMax = i;
Max = a[i][n-i-1];
}
return IndexMax;
}
void SwapMax()
// Меняет местами MaxMain элемент главной диагонали с
// MaxSide элементов побочной
{
int temp = a[MaxMain][MaxMain];
a[MaxMain][MaxMain] = a[MaxSide][n-MaxSide-1];
a[MaxSide][n-MaxSide-1] = temp;
}
int main()
{
srand(2);
RandMatrix();
printf("\n Source matrix \n");
PrintMatrix();
MaxMain = FindMaxMainDiag();
MaxSide = FindMaxSideDiag();
SwapMax();
printf("MaxMain %i\n", MaxMain);
printf("MaxSide %i\n", MaxSide);
printf("\n Result matrix \n");
PrintMatrix();
getchar();
}
Последовательное выполнение
С |
PHP |
Pascal |
{ a = 1; a = a+1; } |
{ $a = 1; $a = $a+1; } |
begin a := 1; a := a+1; end |
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.