
- •1 Введение в теорию алгоритмизации 6
- •Введение
- •1 Введение в теорию алгоритмизации
- •1.1 Понятие алгоритма
- •1.2 Свойства алгоритмов
- •1.3 Формы представления алгоритма
- •1.4 Основные алгоритмические структуры
- •1.5 Алгоритмический язык
- •2.3 Инструменты программирования Microsoft Visual Studio
- •2.5 Консольные и оконные приложения
- •2.6 Компилирование программы
- •3.2 Простые типы данных
- •3.3 Операции над числовыми данными
- •3.4 Объявление переменных
- •3.7 Директива #define
- •3.9 Библиотека математических функций
- •4 Условный оператор
- •4.1 Условный оператор if
- •4.2 Составной оператор
- •4.3 Вложенный оператор
- •4.4 Оператор выбора switch
- •5 Операторы циклов
- •5.1 Определение цикла
- •5.2 Оператор цикла for
- •5.3 Оператор цикла while
- •5.4 Оператор цикла do while
- •5.5 Табулирование функций
- •5.6 Вычисление конечных сумм и произведений
- •5.7 Управляющие конструкции break, continue, return, goto
- •6 Массивы
- •6.1 Понятие и описание массивов
- •6.2 Одномерные массивы
- •6.3 Двумерные массивы (матрицы)
- •7 Символьные массивы
- •7.1 Описание символьного массива
- •7.2 Стандартные библиотечные функции над строками
- •8 Указатели и операции над указателями
- •8.1 Описание указателей
- •8.2 Операции над указателями
- •8.3 Сравнение указателей
- •8.4 Связь между массивом и указателем
- •9 Функции
- •9.1 Модульное программирование
- •9.2 Объявление функции
- •9.3 Формальные и фактические параметры функции
- •9.4 Локальные и глобальные переменные
- •10 Элементы объектно-ориентированного программирования
- •10.1 Инструментальное программное обеспечение
- •10.2 Технологии программирования
- •10.3 Создание класса
- •11 Полиморфизм
- •12 Этапы разработки программного обеспечения
- •12.1 Идея и цель объектно-ориентированного программирования
- •12.2 Основные понятия объектно-ориентированного программирования
- •12.3 Методы тестирования программных продуктов
- •Список литературы
8.4 Связь между массивом и указателем
Указатели позволяют эффективно организовать работу с массивами. Действительно, обозначение массива представляет собой скрытую форму использования указателей. Например, имя массива определяет также его первый элемент, т.е. если arr[][]– массив, то arr==&arr[0][0].
Пример 8.4
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
int arr [4][2];
int *ref1,*ref2;
using namespace System;
int main(array<System::String ^> ^args)
{
arr[0][0] =11;
arr[0][1] =12;
arr[1][0] =21;
arr[1][1] =22;
arr[2][0] =31;
arr[2][1] =32;
arr[3][0] =41;
arr[3][1] =42;
ref1=(int*)arr;
ref2=(int*)arr;
printf("\n%d \n", arr);
printf("\n%d %d %d %d %d \n", *ref1,ref1,ref2,*ref2,*(arr[0]));
ref1++;
ref2=&arr[0][0]+1;
printf("%d %d %d %d %d\n", *ref1,ref1,ref2,*ref2,*(arr[1]));
ref1++;
ref2=&arr[0][0]+2;
printf("%d %d %d %d %d\n", *ref1,ref1,ref2,*ref2,*(arr[2]));
ref1++;
ref2=&arr[0][0]+3 ;
printf("%d %d %d %d %d\n", *ref1,ref1,ref2,*ref2,*(arr[3]));
ref1++;
ref2=&arr[0][0]+4;
printf("%d %d %d %d %d\n", *ref1,ref1,ref2,*ref2,*(arr[4]));
getch();
return 0;
}
Имя массива является адресом его первого элемента.
Вопросы для самоконтроля:
Как получить адрес переменной?
Как получить значение, ссылаясь на указатель.
Какие операции можно применять для переменных типа указатель?
9 Функции
Цель работы: приобрести навыки в решении задач с использованием функций.
9.1 Модульное программирование
«Модульность – фундаментальный аспект всех успешно работающих крупных систем» Бьерн Страуструп
При разработке программы иногда появляются повторяемые группы действий или возникает необходимость разбить программу на функциональные модули, сделать ее структуру иерархической. Для этого во всех языках программирования существуют средства организации подпрограмм (модулей).
Подпрограмма (модуль) — это специальным образом оформленный алгоритм, который может многократно использоваться при решении более общей задачи.
Программирование, основанное на разбиение программы на независимые модули, называется модульным.
9.2 Объявление функции
Разновидностью подпрограмм являются функции.
До настоящего момента нами были использованы системные функции. Например, выполнение программы всегда начинается с команд, содержащихся в функции main(), а затем последняя вызывает другие функции.
Функция – самостоятельная единица программы, представляющая собой группу операторов, выполняющих законченное действие.
К функции можно обратиться по имени, передать ей значение и получить из нее результат.
Формат объявления функции (прототип функции):
тип имя_функции (список_параметров)
тело функции;
Пример 9.1. Объявление функции.
Прототип функции, возвращающей факториал числа n (факториал числа n – это произведение n!=1*2*…*n, см. лабораторную работу 3, задание 5):
int fact(int n);
Задание 9.1.
В примере 9.1 определите имя функции, тип функции и параметра.
Это важно.Функцию следует определять так, чтобы ею можно было воспользоваться как черным ящиком. Имя функции должно быть информативным. Программист не должен нуждаться в доступе к ее телу, для того чтобы узнать, что она делает. Вся необходимая информация должна быть приведена в объявлении функции. Данное правило называется принципом процедурной абстракции.