Массив - это упорядоченный набор данных, которые имеют один и тот же тип данных и расположены в памяти непосредственно друг за другом.
Массивы бывают одномерные и многомерные, числовые и символьные, статические и динамические.
Массив - это простейшая структура данных, которая облегчает работу с большими объемами информации путем их упорядочения. В случае массива упорядочение производится путем индексирования элементов, то есть обращения к каждому элементу по порядковому номеру.
Массивы характеризуются параметрами: имя, тип элементов, размер.
В общей форме одномерный массив объявляется так:
Тип_элементов Имя_массива [размер_массива]
где Тип_элементов - это любой стандартный тип данных.
Имя_массива - уникальное имя, идентификатор.
размер_массива - количество элементов.
Пример: int B[6] - одномерный массив из 6 целочисленных элементов с именем В.
Нумерация элементов в массиве начинается с нуля, то есть первый элемент массива имеет индекс - 0, второй - 1, третий - 2 и так далее. Массивы бывают не только одномерными, но и двух (и более) -мерными. Так, например, прямоугольная матрица - структура, которую можно представить с помощью двумерного массива.
Многомерные массивы в языке С++ организованы по принципу «массива массивов». Общий формат представления многомерного массива:
Тип Имя[N1][N2]…[NM],
где Тип - это любой стандартный тип данных.
Имя - уникальное имя.
М - число индексов массива.
Пример: int A[4][3].
Первый индекс является номером строки, а второй индекс является номером столбца.
Доступ к элементам многомерного массива производится так же, как и в одномерных массивах.
Для работы с массивами используется цикл for. С помощью данного цикла осуществляется поэлементный
ввод-вывод, поэлементные арифметические операции и так далее.
Программный код:
//Задание 1
//Программа выводит имя в рамке и автопортрет из символов ASCII
//Автор:Докунина Ольга, группа 639зсб
#include "stdafx.h"
#include <stdio.h> //подключаем нужные библиотеки
#include <conio.h>
#include "locale"namespace std;_tmain(int argc, _TCHAR* argv[])
{
setlocale(LC_ALL, "Russian"); //подключаем русский язык
// Вывод на экран
printf("Имя символами \n");
printf("\n"
" * * * * * * * * * * * * * * * * * * * *\n"\
" * __ ... ... ... ___ *\n"
" * / \\ |*| \\*\\ /*/ /***\\ *\n"\
" * | ** | |*| \\*\\/*/ /**_**\\ *\n"\
" * |* *| |*| \\**/ /**/ \\**\\ *\n"\
" * | ** | |*|___ |**| /**/___\\**\\ *\n"\
" * \\__/ |_*_*_| |..| /_*_/ \\_*_\\ *\n"\
" * *\n"
" * * * * * * * * * * * * * * * * * * * *\n"
);
printf("\n");
printf(" Автопортрет\n");
" .=&P&&..P&&..P&&..P&&P$P&&..P&&P..= /\\/\\/\\/\\\n"
" .OO... * * * * * * ...OO\\\/\\/\\/\\/\\ \n"
" .OO... * * * * * * ...OO.\\/\\/\\/\\/\\ \n"
" OP.. * * * * * * ...OP\\/\\/\\/\\/\\\n"
" $P.. ..$P.\\/\\/\\/\\/\\\n"
".MP. /****\\ /****\\ .MP.. \\/\\/\\/\\/\\\n"
"+PP. _ _ ..PP. \\/\\/\\/\\/\\\n"
"=P0. /_\\ /_\\ ..P0. \\/\\/\\/\\/\\\n"
".O0.. ..O0. \\/\\/\\/\\/\\\n"
"=M0.. ___ ..M0. \\/\\/\\/\\/\\\n"
"-IO.. /. .\\ ..IO$ \\/\\/\\/\\/\\\n"
".K... \\___/ ...K. \\/\\/\\/\\/\\\n"
".M... ...M. \\/\\/\\/\\/\\\n"
".LJ.. ..LJ. \\/\\/\\/\\/\\\n"
".NP.. | | ..NP. \\/\\/\\/\\/\\\n"
".OO.. | | ..OO. \\/\\/\\/\\/\n"
".BB.. \\____*****_____/ ..OF. \\/\\/\\/\n"
" .P.. ******* ..PP. \\/\\/\n"
" .O.. ***** ..OO. \\/\n"
" OP.. ..OP. \\/\n"
" MP.. ..MP\n"
" ..YU.. ..YU..\n"
" ..OR.. ..OR..\n"
" ..$O..""..OO..OO..OO.."(); // Ожидание нажатия
клавиши перед завершением работы0;
Результат выполнения программы:
Задание 2. Составление блок-схем алгоритмов
язык
программирование массив арифметический
Программный код: #define CRASH_SOMETIMES 10/(rand()%10)
Директива #define используется обычно для задания ключевых слов, констант, операторов и различных выражений, которые используются в программе. В данном случае директива используется для генерации целых чисел от 0 до 10.
В данном примере ошибка будет возникать при значении 0 в знаменателе ( 10/0 - по правилам математики известно, что на 0 делить нельзя).
Чтобы избавиться от этой ошибки код необходимо изменить так: #define CRASH_SOMETIMES 10/((rand()%10)+1)
Если прибавлять единицу к знаменателю, то значение 0 не появится и ошибка
не будет возникать, а целые числа будут генерироваться от 1 до 10.
Программный код:
//Задание 4 - Программа вычисляет значения выражений
// Автор: Докунина Ольга, группа 639зсб
#include "stdafx.h"
#include <math.h>
#include <conio.h>
#include "locale"namespace std;_tmain()
{
setlocale(LC_ALL, "Russian");
printf("Инициализация программы...\n");
printf("\n");
double a=12.3;
double alpha=0.43;
double y1,y2,z1,z2;
printf("Расчет y1.\n");
y1=(((a+2)/sqrt(2*a))-(a/(sqrt(2*a)+2))+(2/(a-sqrt(2*a))))*(sqrt(a)-sqrt(2.0))/(a+2);
printf("Ответ: y1= %f\n",y1);
printf("\n");
printf("Расчет y2.\n");
y2=1/(sqrt(a)+sqrt(2.0));
printf("Ответ: y2= %f\n",y2);
printf("\n");
printf("Расчет z1.\n");
z1=(sin(2*alpha)+sin(5*alpha)-sin(3*alpha))/(cos(alpha)+1 -2*pow(sin(2*alpha),2));
printf("Ответ: z1= %f\n",z1);
printf("\n");
printf("Расчет z2.\n");
z2=2*sin(alpha);
printf("Ответ: z2= %f\n",z2);
return 0;
}
Результат выполнения программы:
Исходная задача:
Составленная схема неравенств
Фрагмент А:
Фрагмент В:
Составленный программный код:
if(((x+2)^2+(y-2)^2<=4 && x<=0 && y>=0)|| //Фрагмент А
(x<=4 && y>=-2 && x>=0 && y<=0))// Фрагмент В
Точка с координатами (x,y) попадает в заштрихованную область
Точка не попадает в заштрифованную область
Программный код:
// Задание 6 - Работа с одномерными массивами
// Автор: Докунина Ольга, группа 639зсб
#include "stdafx.h"
#include <stdio.h>
#include <math.h>
#include <conio.h>
#include <iostream>
#include "locale"namespace std;_tmain()
{ (LC_ALL, "Russian");int n=27;A=1;// A - произведение ненулевых элементов;B=0; //В - последний отрицательный элемент с нечетным номером;C=0;// С- среднее арифметическое положительных элементов;
int i;sum=0;count=0;
double result;
//Предопределенный одномерный массивmas[n]={ 3,-1,4,-1,5,-9,2,-6,5,
,5,-8,9,-7,9,-3,0,-3,
8,-4,0,-2,6,-4,3,-3,8};(i=0; i<n; i++)
{ //цикл по всему массиву
//Произведение ненулевых элементов( mas[i]!=0)
{=A*mas[i];//Находим произведение ненулевых элементов
}
// Последний отрицательный элемент с нечетным номером
if (mas[i]<0 && i%2!=0)
{ =mas[i];
}
//Среднее арифметическое положительных элементов(mas[i]>0)
{+=mas[i];//Находим сумму всех положительных элементов++;//Находим общее количество положительных элементов=sum/count;//Находим среднее арифметическое
}
}
//Выводим результаты вычислений("Результаты промежуточных вычислений:\n");("A= %f;\n",A);("B= %f;\n",B);("C= %f;\n",C);
// Вычисляем итоговый результат= A*B/(C+2);
// Выводим итоговый результат("\nИтоговый результат:\n");("result= %f;\n",result);("\nНажмите любую клавишу для выхода...");();0;
} //Конец программы
Результат выполнения программы:
В ходе выполнения курсовой работы была изучена краткая история развития языков программирования, описаны основные языки и среды программирования, проведено сравнение этих сред и языков. В ходе изучения современных языков программирования, был составлен отсортированный список наиболее популярных языков программирования на текущее время.
Во время выполнения курсовой работы был подробно изучен язык программирования С++. Были описаны операции базового ввода и вывода в языке С++, правила составления блок-схем. Рассмотрено описание и выполнение арифметических операций в программах, использование условного оператора, назначение и применение одномерных и многомерных массивов.
В ходе выполнения практических заданий были закреплены знания, полученные в результате изучения теоретического материала, а так же получены новые навыки и умения.
Итак, в результате выполнения курсовой работы были закреплены основные
теоретические знания, а также получены практические навыки создания программ на
языке С++.
1Архангельский, А. Я. Программирование в C++ Builder 6 / А. Я. Архангельский. - М. : Бином, 2002. - с. 368.
Павловская, Т. А. С/С++. Программирование на языке высокого уровня : учебник для вузов / Т. А. Павловская. - СПб. : Питер, 2010. - с. 467.
Коплиен, Дж. Программирование на С++ / Дж. Коплиен. - СПб.:ПИТЕР, 2005. - 624 с.
Краткая история и классификация языков программирования [Электронный ресурс] : информационный портал, посвященный информатике. - Режим доступа: http://kobriniq.ru/spravochnik-po-informatike/kratkaya-istoriya-i-klassifikatsiya-yazikov-programmirovaniya, свободный. - Загл. с экрана.
Блок-схема и ее элементы [Электронный ресурс] : информационный портал, посвященный построения блок-схем. - Режим доступа: http://fvn2009.narod.ru/Manuscripts/Algorithmization/algorithm8.htm, свободный.- Загл. c экрана.
Массивы С/C++ [Электронный ресурс]: база знаний Allbest. - Режим доступа: http://knowledge.allbest.ru/programming/2c0a65625b2ac68b5d43a89421316d37_0.html, свободный. - Загл. с экрана.
Современные системы программирования [Электронный ресурс]: электронная библиотека. - Режим доступа: http://www.bibliofond.ru/view.aspx?id=552898, свободный. -Загл. с экрана.