Разработка и оформление программ. Функции для тестирования. Поиск индекса максимального элемента главной диагонали

Страницы работы

Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.

Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.

Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.

Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.

Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.

Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.

Содержание работы

Введение. 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;

}

Функция main

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

Похожие материалы

Информация о работе

Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.

Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.

Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.

Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.

Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.

Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.