Файл: Обзор языков программирования высокого уровня ( Классификация языков программирования).pdf
Добавлен: 30.06.2023
Просмотров: 61
Скачиваний: 2
СОДЕРЖАНИЕ
1 Классификация языков программирования
2 Обзор языков по востребованности и популярности
3 Краткая характеристика выбранных языков
3.1 Язык С++ и среда C++Builder
3.2 Язык программирования С# и среда VisualStudio
3.3 Веб ориентированные языки и инструменты
4 Примеры реализации кода на языке C#
Вообще говоря, Javascript не является классическим объектным языком (его еще называют облегченным объектным языком). В нем нет наследования и полиморфизма. Программист может определить собственный класс объектов через оператор function, но чаще пользуется стандартными объектами, их конструкторами и вообще не применяет деструкторы классов. итерал, который воспринимается как значения URL загруженного документа.
4 Примеры реализации кода на языке C#
Наиболее эффективным иллюстрированием использования языка является рассмотрение конкретных примеров и реализация практических задач. Объем работы не позволяет рассмотреть примеры на всех ранее рассмотренных языках, по этому ограничимся только языком C#. Этот раздел курсовой работы демонстрирует основные направления использования языка, реализацию основных алгоритмических конструкций, обработку данных (на примере массива). В качестве примеров рассматриваются простые задачи. Понимание которых не вызывает сложности, такие задачи наиболее подходящие для иллюстрирования возможностей языка. Эта часть является авторским вкладов в работу и реализуется самостоятельно в отличие от предыдущего материала, который является некоторой выдержкой и обобщенным анализом проработанных источников литературы и ресурсов Интернета.
Рассмотрим некоторые примеры использования программного кода языка.
4.1 Консольное приложение
Пример разработки консольного приложения, иллюстрируется базовые алгоритмические конструкции (цикл, ветвление), работа с простыми типами данных, ввод/вывод на консоль.
Задание
Вычислить и вывести на экран в виде таблицы значения функции, заданной графически, на интервале от хнач до хкон с шагом dx. Интервал и шаг задать таким образом, чтобы проверить все ветви программы. Таблицу снабдить заголовком и шапкой.
Рисунок 8 – параметрически заданная функция
Этап формализации
При разработке программного приложения выбраны обозначения, значения и типы данных:
Переменные из условия задачи |
Переменные в программе и их значения |
Тип данных |
хнач |
xBeg = -6 |
double |
хкон |
xEnd = 9 |
double |
dx |
dX = 0.5 |
double |
Y |
y |
double |
dX = 0.5 выбрано из тех соображений, что минимальный интервал между различными функциями = 1, следовательно, соблюдаются условия задачи относительно проверки каждого интервала задания аргумента функции.
Значение функции Y определяются следующим образом:
Алгоритм
Чтобы проиллюстрировать все этапы работы над задачей, далее приведен текст программы и результаты тестирования.
Листинг
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Lab5
{
class Program
{
static void Main(string[] args)
{
double x, x0=-6, xn = 9, dx = 0.5, y;
Console.Write("Вычисление значений функции заданной графически\n");
Console.Write("___X____||____Y____\n");
for (x = x0; x <= xn; x += dx)
{
if (x < -5) { y = -3;}
else
if ((x >= -5) && (x < -3)) { y = x + 3; }
else
if ((x >= -3) && (x <= 3)) { y = Math.Sqrt(9 - x * x); }
else
if ((x > 3) && (x <= 8)) { y = (3 * x - 9) / 5; }
else { y = 3; }
Console.Write("|{0,6:G2} || {1,7:G5}|\n", x, y);
}
Console.Write("________||_________\n");
Console.ReadLine();
}
}
}
Тестовый пример
4.2 Обработка массивов
Задача 1.
Даны вещественные массивы A[8], B[8], C[8]. Определить значения вещественного массива D[3][8]. В первую строку массива D записать значения массива A, во вторую ‐ массива В, а в 3‐ю ‐ массива С.
Листинг:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
double[] a = new double[8];
double[] b = new double[8];
double[] c = new double[8];
double[,] d = new double [3,8];
int i,j;
Console.WriteLine("Вводим данные в массивов а[8], b[8], c[8]\n");
for (i=0; i<8; i++)
{
Console.Write("a[{0}]=",i);
a[i] = Convert.ToDouble(Console.ReadLine());
Console.Write("b[{0}]=",i);
b[i]=Convert.ToDouble(Console.ReadLine());
Console.Write("c[{0}]=",i);
c[i]=Convert.ToDouble(Console.ReadLine());
}
// Инициализация массива d[3][8] элементами массивов а[8], b[8], c[8]
Console.WriteLine("\n\n Результатирующий массив\n");
for (i=0; i<8; i++)
{
d[0,i] = a[i];
d[1,i] = b[i];
d[2,i] = c[i];
}
for (i=0; i<3; i++)
{
for (j=0; j<8;j++)
{
Console.Write(" {0,4} ", d[i,j]);
}
Console.WriteLine();
}
Console.ReadLine();
}
}
}
Результат
Задача 2.
Даны целые массивы A[10], B[10] и значения C,E,D,F. Каждый массив преобразовать следующим образом: если элемент массива A[i] >=0, то он заменяется на значение C, иначе на значение D. Если элемент массива B[i] >= 0, то он заменяется на значение E, иначе на значение F.
Листинг:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication2
{
class Program
{
//Ввод значений эл. массива
static void input_arr(int size, char name, int[] arr)
{
for (int i = 0; i < size; i++)
{
Console.Write("{0}[{1}]=", name, i);
arr[i] = Convert.ToInt32(Console.ReadLine());
}
}
//Вывод значений эл. массива
static void output_arr(int size, char name, int[] arr)
{
Console.Write("{0}:\n", name);
for (int i = 0; i < size; i++)
{
Console.Write("{0} ", arr[i]);
}
Console.Write("\n");
}
static void Main(string[] args)
{
int[] a = new int[10];
int[] b = new int[10];
int c = 0,d=0,e=0,f=0;
int i, j;
Console.WriteLine("Введите начальные значения массивов:\n");
Console.WriteLine("Массив A:\n");
input_arr(10, 'A',a);
Console.WriteLine("Массив B:\n");
input_arr(10, 'B',b);
Console.WriteLine("Введите элементы для замены:\n");
Console.Write("c=");
c= Convert.ToInt32 (Console.ReadLine());
for (i = 0; i < 10; i++)
{
if (a[i]<0)
{a[i] = d;}
else
{a[i] = c;}
if (b[i]<0)
{b[i] = f;}
else
{b[i] = e;}
}
Console.WriteLine("Массивы после преобразования:");
output_arr(10, 'A', a);
output_arr(10, 'B', b);
Console.ReadLine();
}
}
}
Результат
4.3 Разработка приложений WinForms
Для примера рассмотрим решение предыдущих задач с массивами, но уже с использованием технологии WinForms.
Алгоритмических отличий практически нет. Но в коде можно отметить, что в качестве компонента для вывода используется dataGridView, а для хранения и обработки данных все те же статические массивы.
Листинг
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace b4_2WF
{
public partial class Form1 : Form
{
int[] a = new int[10];
int[] b = new int[10];
public Form1()
{
InitializeComponent();
dataGridView1.RowCount = 2;
dataGridView1.ColumnCount = 11;
dataGridView1.Rows[0].SetValues("мас.A:");
dataGridView1.Rows[1].SetValues("мас.B:");
dataGridView2.RowCount = 2;
dataGridView2.ColumnCount = 11;
dataGridView2.Rows[0].SetValues("мас.A:");
dataGridView2.Rows[1].SetValues("мас.B:");
}
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (Char.IsNumber(e.KeyChar) ||
(!string.IsNullOrEmpty(textBox1.Text) && e.KeyChar == '-'))
{
return;
}
else
{ e.Handled = true; }
}
private void button1_Click(object sender, EventArgs e)
{
// RAndom inicialization
Random rnd = new Random();
for (int i = 0; i < 10; i++)
{
a[i] = 100 - rnd.Next(201);
dataGridView1.Rows[0].Cells[i + 1].Value = a[i];
b[i] = 100 - rnd.Next(201);
dataGridView1.Rows[1].Cells[i + 1].Value = b[i];
}
}
private void button2_Click(object sender, EventArgs e)
{
int C = Convert.ToInt32(textBox1.Text),
D = Convert.ToInt32(textBox2.Text),
E = Convert.ToInt32(textBox3.Text),
F = Convert.ToInt32(textBox4.Text);
for (int i = 0; i < 10; i++)
{
if (a[i] < 0)
{
a[i] = D;
}
else
{ a[i] = C; }
dataGridView2.Rows[0].Cells[i + 1].Value = a[i];
if (b[i] < 0)
{
b[i] = F;
}
else
{ b[i] = E; }
dataGridView2.Rows[1].Cells[i + 1].Value = b[i];
}
}
private void button3_Click(object sender, EventArgs e)
{
for (int i = 0; i < 10; i++)
{
a[i] = Convert.ToInt32( dataGridView1.Rows[0].Cells[i + 1].Value);
b[i] = Convert.ToInt32( dataGridView1.Rows[1].Cells[i + 1].Value);
}
}
}
}
Результат
До заполнения данными
После заполнения
После преобразования
ВЫВОДЫ
В работе рассмотрены несколько языков программирования высокого уровня. При этом, для более полного обзора, рассмотрены языки различной направленности и сферы применения.
Выбор языков базировался на анализе современного положения популярности и востребованности ЯВУ.
Основное внимание уделено языку программирования C#, этот язык, хоть и не занимает сегодня лидирующих позиций, демонстрирует стабильный спрос и интерес на рынке разработчиков.
На некоторое время, после своего появления в 2000 году, язык C# вытеснил многие языки в своем сегменте. Этому способствовало ряд факторов: объектная ориентированность языка, мощный набор готовых типов, классов, библиотек, возможность разработки широкого спектра программ: от консольных до веб ориентированных, плотная поддержка разработчиком(обновления, интегрированность, документация), кросплатформенность.
Ввиду очень удобного объектно-ориентированного дизайна, C# является хорошим выбором для быстрого конструирования различных компонентов - от высокоуровневой бизнес логики до системных приложений, использующих низкоуровневый код. Также следует отметить, что C# является и Web ориентированным - используя простые встроенные конструкции языка ваши компоненты могут быть легко превращены в Web сервисы, к которым можно будет обращаться из Internet посредством любого языка на любой операционной системе. Дополнительные возможности и преимущества перед другими языками приносит в C# использование передовых Web технологий, таких как: XML (Extensible Markup Language) и SOAP (Simple Object Access Protocol). Среда разработки Web сервисов позволяет программисту смотреть на существующие сегодня Web приложения, как на родные C# объекты, что дает возможность разработчикам соотнести имеющиеся Web сервисы с их познаниями в объектно-ориентированном программировании.
На протяжении уже более 15 лет язык удерживает лидирующие позиции среди разработчиков, востребован в области коммерческого программирования. Следовательно ‑ язык актуален для изучения и анализа, что и было проделано в данной работе.
Задачи, поставленные в курсовой работе выполнены в полном объеме.
ЛИТЕРАТУРА
- Федоров А. Г. Создание Windows-приложений в среде C++ Builder 6. М.: ТОО «Компьютер Пресс», 2002.
- Хендерсон К. Руководство разработчика баз данных в C++ Builder 6. М: Диалектика, 2000.
- Гвоздева Т. В., Б. А. Баллод, Проектирование информационных систем, М, Издательство: Феникс, 2009 г., 512 стр.
- Литвиненко Н. А. - Технология программирования на С++, - Петербург: БХВ 2010
- Стефан Р. Дэвис - С++ Для чайников, - М.: Вильямс 2003, - 336 стр.
- Кузнецов С. Д., Основы баз данных, М, Издательства: Бином. Лаборатория знаний, Интернет-университет информационных технологий, 2007 г., 488 стр.
- Илюшечкин В. М. , Основы использования и проектирования баз данных, М, Издательство Юрайт, 2010 г., 224 стр.
- Дрейер Мартин. C# для школьников. 2009, 126 стр.
- Дубовцев А. Microsoft .NET. Наиболее полное руководство. 2004, 701 стр.
- Культин. C# в задачах и примерах. 2007, 241 стр.
- Купцевич Ю.И. Альманах программиста Безопасность в Microsoft .NET. 2004, 294 стр.
- Либерти Д. Программирование на C#. Создание .NET приложений. Программирование на C#. 684 стр.
- Нейгел, Ивьен, Глинн, Уотсон, Скиннер. C# 2008 и платформа .NET 3.5 для профессионалов. 2009, 1392 стр.
- Нортроп Т. Основы разработки приложений на платформе .NET Framework. Экзамен 70-536. 2007, 864 стр.
- Нэш Т. C# 2008 Ускоренный курс для профессионалов. 2008, 576 стр.
- Пауэрс Л. Microsoft Visual Studio 2012 в подлиннике. 2013, 1191 стр.
- Петцольд Ч. Программирование для Microsoft Windows на С#. Том 1. 2002, 570 стр.
- Рихтер Д. Программирование на платформе Microsoft .NET FRAMEWORK 2.0 на языке C# 2007, 658 стр.
- Симон Робинсон и др. C# для профессионалов. Том 1. 2003. 516 стр.
- МакГрат Майк Программирование на Java для начинающих/ М.: Издательство: ЭКСМО, 2016 ISBN: 978-5-699-85743-2, 192 стр.
- Алексей Васильев Самоучитель Java с примерами и программами. 3-е изд./ СП.: Наука и Техника, 2016 ISBN: 978-5-94387-985-2, 368 стр.
- «PHP, Mysql и Dreamweaver MX 2004. Разработка интерактивных Web-Сайтов.» Дронов В. А. — Спб.: Бхв-Петербург, 2005. - 448 с : ил.
- «PHP and Mysql Web Development (4th Edition)», Luke Welling, Laura Thomson 848 стр.
- Динамика изменения позиций популярности языков Электронный ресурс [режим доступа]: https://cosmonova.net/ru/page/top_popular_programming_language
- Сравнение популярности и востребованности языков программирования Электронный ресурс [режим доступа]: https://habrahabr.ru/hub/github/