Курсовая работа (т): Современные языки программирования

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

2.5    Назначение и применение одномерных/многомерных массивов


Массив - это упорядоченный набор данных, которые имеют один и тот же тип данных и расположены в памяти непосредственно друг за другом.

Массивы бывают одномерные и многомерные, числовые и символьные, статические и динамические.

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

Массивы характеризуются параметрами: имя, тип элементов, размер.

В общей форме одномерный массив объявляется так:

Тип_элементов Имя_массива [размер_массива]

где Тип_элементов - это любой стандартный тип данных.

Имя_массива - уникальное имя, идентификатор.

размер_массива - количество элементов.

Пример: int B[6] - одномерный массив из 6 целочисленных элементов с именем В.

Нумерация элементов в массиве начинается с нуля, то есть первый элемент массива имеет индекс - 0, второй - 1, третий - 2 и так далее. Массивы бывают не только одномерными, но и двух (и более) -мерными. Так, например, прямоугольная матрица - структура, которую можно представить с помощью двумерного массива.

Многомерные массивы в языке С++ организованы по принципу «массива массивов». Общий формат представления многомерного массива:

Тип Имя[N1][N2]…[NM],

где Тип - это любой стандартный тип данных.

Имя - уникальное имя.

М - число индексов массива.

Пример: int A[4][3].

Первый индекс является номером строки, а второй индекс является номером столбца.

Доступ к элементам многомерного массива производится так же, как и в одномерных массивах.

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

3. Практические задания

Задание 1. Базовый вывод информации


Программный код:

//Задание 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. Составление блок-схем алгоритмов






язык программирование массив арифметический







Задание 3. Анализ программного кода


Программный код: #define CRASH_SOMETIMES 10/(rand()%10)

Директива #define используется обычно для задания ключевых слов, констант, операторов и различных выражений, которые используются в программе. В данном случае директива используется для генерации целых чисел от 0 до 10.

В данном примере ошибка будет возникать при значении 0 в знаменателе ( 10/0 - по правилам математики известно, что на 0 делить нельзя).

Чтобы избавиться от этой ошибки код необходимо изменить так: #define CRASH_SOMETIMES 10/((rand()%10)+1)

Если прибавлять единицу к знаменателю, то значение 0 не появится и ошибка не будет возникать, а целые числа будут генерироваться от 1 до 10.

Задание 4. Вычисление выражений


Программный код:

//Задание 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;

}

Результат выполнения программы:


Задание 5. Условный оператор


Исходная задача:

Составленная схема неравенств

Фрагмент А:

Фрагмент В:

Составленный программный код:

 if(((x+2)^2+(y-2)^2<=4 && x<=0 && y>=0)|| //Фрагмент А

(x<=4 && y>=-2 && x>=0 && y<=0))// Фрагмент В

Точка с координатами (x,y) попадает в заштрихованную область

Точка не попадает в заштрифованную область

Задание 6. Работа с одномерными массивами


Программный код:

// Задание 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, свободный. -Загл. с экрана.

Источник: https://www.bibliofond.ru/detail.aspx?id=870920