Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
po_programmirovaniyu_otvety.rtf
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
22.6 Mб
Скачать

Вопрос 44. Привести пример реализации алгоритма обработки и преобразования матриц, используя динамическое выделение памяти и технику работы с указателями.

Например:

int n, m;//n и m – количество строк и столбцов матрицы

float **matr; //указатель для массива указателей

matr = new float * [n]; //выделение динамической памяти

под массив указателей

for (int i=0; i<n; i++)

matr[i] = new float [m]; //выделение динамической памяти

для массива значений

При выделении динамической памяти размеры массивов должны быть полностью определены.

Вопрос 45. Понятие структуры. Описание, инициализация структур. Доступ к полям структур. Примеры использования структур.

Структура - это набор данных, где данные могут быть разного типа. Например, структура может содержать несколько переменных типа int и несколько переменных типа char.

Переменные, которые содержатся в структуре называются элементами или полями структуры. Структуры определяются с помощью ключевого слова struct.

Пример описания структуры:

struct studen

{

char name[50];

int kurs;

int age;

};

В этом описании student является шаблоном структуры,

struct student является типом данных.

Чтобы использовать структуру, необходимо объявить переменные типа struct student.

Например,

struct student s1, s2;

Переменные s1 и s2 являются переменными типа struct student. Компилятор автоматически выделит память под эти переменные. Под каждую из переменных типа структуры выделяется непрерывный участок памяти.

Вопрос 46. Массивы структур. Привести пример обработки массива структур.

Структуры могут быть объединены в массивы структур. Объявление массива структур делается аналогично объявлению массива переменных. Например, если нужно хранить информацию о 10 студентах, то объявление массива будет следующим struct student stud1[10];

Здесь stud1 - имя массива структур, а stud1[0] – это первая структура, stud1[1] - вторая... stud1[9] – десятая структура. Чтобы получить доступ к полю age пятой структуры нужно написать stud1[4].age

Чтобы получить доступ к полю kurs первой структуры нужно написать stud1[0].kurs

Пример:

#include "stdafx.h"

#include <iostream>

using namespace std;

// определение структуры

struct student

{

char name[30];

int kurs;

int age;

};

void main()

{

// объявление массива на 10

//структур

struct student stud [10];

int i, n;

cout << " Количество студентов:"

<< endl;

// ввод n (число студентов)

cin >> n;

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

{

cout << "Введите имя:" << endl;

// ввод имени

cin >> stud [i].name;

cout << " Введите возраст :" <<

endl;

// ввод возраста

cin >> stud [i].age;

cout << " Введите номер курса :" << endl;

// ввод номера курса

cin >> stud [i].kurs;

}

// Вывод

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

{

cout << " Студент “ << stud [i].name

<<endl;

cout << " Курс “ << stud [i].kurs << endl;

cout << " Возраст “ << stud [i].age <<endl;

}

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]