Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практикум ЭВМ ответы.doc
Скачиваний:
3
Добавлен:
07.05.2019
Размер:
309.25 Кб
Скачать

Преобразование матрицы в одномерный массив.

Обработка одномерных статических массивов осуществляется быстрее, чем двумерных того же размера, что часто требует выполнения указанного преобразования. Требуется переслать элементы матрицы n*m в одномерный массив того же размера по строкам с сохранением порядка следования элементов. Для этого нужно соответствующим образом согласовать индексы исходной матрицы А и формируемого одномерного массива Х. 

Программа :

  1. # include

  2. # include

  3. # include

  4. # define n 3

  5. # define m 4

  6. int main ()

  7. {

  8. int a[n][m],x[n*m];

  9. clrscr ();

  10. randomize();

  11. printf ("\n Целочисленная матрица A[%i][%i] сформированные случайными числами \n диапазона от -50 до 50.\n",n,m);

  12. for (int i=0;i

  13. {

  14. for (int j=0;i

  15. {

  16. a[i]=random(101)-50;

  17. printf ("%6i",a[i]);

  18. }

  19. puts(" ");

  20. }

  21. for (int i=0;i

  22.   for (int j=0;j

  23. x[i*m+j]=a[i][j];

  24. printf ("\n Получен массив X[%i]. \n",n*m);

  25. for (int i=0;i

  26. printf ("%6i",x[i]);

  27. getch();

  28. }

Как видите, в этом уроке я отошел от своего обычного стиля изложения, это сделано потому, что я считаю, что с для  работы с матрицами необходимо запомнить несколько алгоритмов,которые я тут и привел.Надеюсь мои уроки не стали менее понятными.Желаю вам успеха в работе с матрицами.

Описание функции(функция заданная пользователем)

3.6. Описание и определение функций.

Описание функции устанавливает такие атрибуты функции, как имя, ожидемые аргументы и тип возвращаемого значения. Определение функции определяет ее реальное содержимое.

-Описание функции.

Описание функции состоит из типа возвращаемого значения, имени функции и необязательного списка аргументов. Заголовок функции состоит из типа данных, возвращаемых функций, за которым следует имя функции и список формальных параметров. Тело функции состоит из локальных описаний и составного оператора (или "блока"), который определяет, что делает данная функция.

-Типы возвращаемых значений.

Тип возвращаемого значения определяет, какой тип данных возвращается данной функции. Возвращаемым типом может быть любой тип- обычной структуры или смесь, исключая массив или функцию. Тип void означает, что функция не возвращает никакого значения.

Стандартный тип возвращаемого значения-это int. Вам не следует писать функции, возвращающие структуру или смесь. Огромный размер таких данных замедляет выполнение программы.

-Список типов аргументов и прототипы функций.

Список типов аргументов в описании функции определяет для данной функции список типов аргументов. Применение таких списков типов аргументов известно также как "задание прототипов функций". Список типов аргументов содержит один или более наименований типов, определяющих типы, ожидаемые для каждого аргумента. Используйте также тип void для обозначения того, что данная функция не принимает аргументов. -Формальные параметры.

Формальные параметры в описании функции являются переменными, которые получают значения аргументов, переданные функции. -Передача аргументов функции.

Все аргументы (за исключением массивов) передаются значением. То есть функции передается копия данного аргумента (а не его адрес). В результате, СИ-функция не изменяет содержимое переданной ей переменной. Изменяется это правило передачи параметра значением только когда аргумент, передаваемый функции-это адрес. В этом случае, указатель косвенно разрешает функции изменять содержимое переменной с данным адресом.

Пример: Описание и определение функции.

#include <stdio.h> /* описания стандартных функций */

#include <stdlib.h> /* содержит описание прототипа atof */

typedef char *string;

main()

{

string ascii_number;

float float_number;

ascii_number = "-6.02E-23";

printf ("string: %s\n", ascii_number);

/* следующая строка генерирует предупреждающее сообщение компиля-

тора */

float_number = atof(); /* слишком мало аргументов */

float_number = atoy (ascii number); /* корректный вызов */

printf ("number: %e'n", float_number);

}

Приведенная выше СИ-программа показывает, как использлвание прототипа функции может предупредить вас о некорректном вызове функции. Функция atof преобразует символьную строку в число с плавающей точкой. Прототип функции содержащийся в файле stdlib.h определяет, что функция принимает один аргумент.

Работа с нитями.основные функции OpenMP