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

6.3 Двумерные массивы (матрицы)

Для ввода (вывода) элементов двумерного массива используются вложенные циклы:

int n=3, a[3][3],i,j;

for(i=1;i<=n;i++)

for(j=1;j<=n;j++)

{

printf("введите элемент %d %d матрицы a ",i,j);

scanf("%d",&a[i][j]);

}

Пример 6.6 Суммирование матриц

Чтобы сложить (вычесть) две матрицы, необходимо сложить (вычесть) соответствующие элементы этих матриц:

si,j = ai,j + bi,j ; i=1,2,...,n; j=1,2,...,m,

где n, m – размеры матриц.

#include "stdafx.h"

#include<stdio.h>

#include<conio.h>

using namespace System;

int main(array<System::String ^> ^args)

{

int n=3, a[3][3], b[3][3],s[3][3],i,j;

// ввод элементов матрицы а

printf("Введите элементы матрицы a: \n");

for(i=1;i<=n;i++)

for(j=1;j<=n;j++)

{

printf("элемент %d %d = ",i,j);

scanf("%d",&a[i][j]);

}

// ввод элементов матрицы b

printf("Введите элементы матрицы b: \n");

for(i=1;i<=n;i++)

for(j=1;j<=n;j++)

{

printf("элемент %d %d = ",i,j);

scanf("%d",&b[i][j]);

}

// поэлементное суммирование матриц а и b

for(i=1;i<=n;i++)

for(j=1;j<=n;j++) s[i][j]=a[i][j]+b[i][j];

//вывод результирующей матрицы s

printf("сумма матриц:\n");

for(i=1;i<=n;i++)

{

for(j=1;j<=n;j++) printf("%d ",s[i][j]);

printf("\n");

}

getch();

return 0;

}

Задание 6.6

Выполните программу примера 6.6. На основе примера 6.6 напишите программу умножения матрицы на скаляр k*А. Чтобы умножить матрицу на скаляр, необходимо каждый элемент этой матрицы умножить на скаляр:

bi,j =k*ai,j; i=1,2,...,n; j=1,2,...,m,

где n, m – размеры матриц.

Вопросы для самоконтроля:

  1. Что такое массив?

  2. Для чего необходимо описание массива?

  3. Как объявить одномерный массив? Двумерный массив?

  4. Может ли массив содержать разнородные данные?

7 Символьные массивы

Цель работы: изучить определение, назначение, виды и описание символьных массивов, приобрести навыки в решении задач с помощью массивов символов.

7.1 Описание символьного массива

Массив символов представляет собой строку. Это означает, что символы в строке можно представить себе расположенными в соседних ячейках памяти – по одному символу в ячейке. Для отметки конца строки используется нуль-символ. Нуль-символ не цифра; он не выводится на печать и в таблице ASCII имеет номер 0. Наличие нуль-символа означает, что количество ячеек массива должно быть по крайней мере на одну больше, чем число символов, которые необходимо размещать в памяти.

Это важно: для работы с символьными массивами необходимо подключить библиотеку <string.h>.

Описание символьного массива из 10 ячеек памяти, в каждую из которых можно поместить один элемент типа char:

char str[10];

При определении массива необходимо сообщить компилятору требуемый размер памяти. Один из способов сделать это – инициализировать массив при помощи строковой константы. Так как автоматические массивы инициализировать нельзя, необходимо для этого использовать статические или внешние массивы.

Пример 7.1 Описание символьного массива

#include "stdafx.h"

#include <stdio.h>

#include <conio.h>

#include <string.h>

using namespace System;

int main(array<System::String ^> ^args)

{

char name[50];

printf("Введите имя\n");

scanf("%s",name);

printf("Красивое имя, %s!\n",name);

getch();

return 0;

}

В примере 7.1 задан массив из 50 ячеек памяти, в каждую из которых можно поместить один элемент типа char. Это нами осуществлено с помощью оператора описания:

char name[50];

Можно воспользоваться более сложным оператором описания:

static char name[50];

Для ввода строки в примере 7.1 используется функция scanf() со спецификатором формата %s.

Задание 7.1

Выполните программу примера 7.1.