оретические исследования нашего соотечественника Андрея Андреевича Маркова (младшего) (1903-1979), выполненные в середине века, показали, что в общем случае алгоритмы должны содержать предписания двух видов:
1) предписания, направленные на непосредственное преобразование информации (функциональные операторы);
2) предписания, определяющие дальнейшее направление действий (логические операторы).
ример 1. Словесное описание алгоритма нахождения наибольшего общего делителя (НОД) пары натуральных чисел (алгоритм Евклида).
Чтобы найти НОД двух чисел, составьте таблицу из двух столбцов и назовите столбцы X и У. Запишите первое из заданных чисел в столбец X, а второе — в столбец У. Если данные числа не равны, замените большее из них на результат вычитания из большего числа меньшего. Повторяйте такие замены до тех пор, пока числа не окажутся равными, после чего число из столбца X считайте искомым результатом.
Построчная запись. Это запись на естественном языке, но с соблюдением некоторых дополнительных правил:
Объяснение:
оретические исследования нашего соотечественника Андрея Андреевича Маркова (младшего) (1903-1979), выполненные в середине века, показали, что в общем случае алгоритмы должны содержать предписания двух видов:
1) предписания, направленные на непосредственное преобразование информации (функциональные операторы);
2) предписания, определяющие дальнейшее направление действий (логические операторы).
ример 1. Словесное описание алгоритма нахождения наибольшего общего делителя (НОД) пары натуральных чисел (алгоритм Евклида).
Чтобы найти НОД двух чисел, составьте таблицу из двух столбцов и назовите столбцы X и У. Запишите первое из заданных чисел в столбец X, а второе — в столбец У. Если данные числа не равны, замените большее из них на результат вычитания из большего числа меньшего. Повторяйте такие замены до тех пор, пока числа не окажутся равными, после чего число из столбца X считайте искомым результатом.
Построчная запись. Это запись на естественном языке, но с соблюдением некоторых дополнительных правил:
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
#include <time.h>
int main(){
setlocale(LC_ALL,"rus");
srand(time(0));
int **array_a;
int line;
int column;
int i, j;
int min_i;
int min_j;
printf("Введите размер матрицы: ");
scanf("%d %d", &line, &column);
array_a = (int**)malloc(sizeof(int)*line);
for(i = 0; i < line; i++)
array_a[i] = (int*)malloc(sizeof(int)*column);
printf("\nИсходный массив:\n");
for(i = 0; i < line; i++){
for(j = 0; j < column; j++){
array_a[i][j] = rand()%10;
printf("%d ", array_a[i][j]);
}
printf("\n");
}
min_i = 0;
min_j = 0;
for(i = 0; i < line; i++){
for(j = 0; j < column; j++){
if(array_a[i][j] < array_a[min_i][min_j]){
min_i = i;
min_j = j;
}
}
}
for(i = 0; i < line; i++){
for(j = min_j; j < column - 1; j++){
array_a[i][j] = array_a[i][j+1];
}
}
for(i = min_i; i < line - 1; i++){
for(j = 0; j < column - 1; j++){
array_a[i][j] = array_a[i+1][j];
}
}
printf("\nРезультат:\n");
for(i = 0; i < line - 1; i++){
for(j = 0; j < column - 1; j++){
printf("%d ", array_a[i][j]);
}
printf("\n");
}
return 0;
}