Файл: Сравнительный анализ описания данных для различных языков программирования ( ЯЗЫКИ ПРОГРАММИРОВАНИЯ И ИХ КЛАССИФИКАЦИЯ).pdf
Добавлен: 31.03.2023
Просмотров: 295
Скачиваний: 1
2 Во многих языках программирования списки не являются встроенной структурой, и их поддержка требует конструирования на основе записей и ссылок(указателей).
Рассмотрим примеры объявления данных типа «список»
1 C# при использовании пространства имен System.Collections.Generic:
List<string> dinosaurs = new List<string>();
2 Pascal:
Type T dinosaursElem = ^TElemSpiska;
TElemSpiska = record
inf: integer;
next: T dinosaursElem;
end;
Var
dinosaurs: TdinosaursElem;
3 Basic:
Dim dinosaurs As New List(Of string)() From {‘Dino1’, ‘Dino2’, ‘Dino3’}
Как видно C# и Basic в отличие от Pascal обладают более простыми способами описания данных типа список.
2.2.5. Множества
В Pascal, C# и некоторых других языках программирования возможно использование так называемых множеств. Понятие множества в программировании значительно уже математического понятия.
Множество представляет собой динамическую структуру данных, в виде неупорядоченной совокупности элементов, как правило, однотипных.
Базовые операции над множествами:θпроверка вхождения элемента в множество;θтеоретико-множественные операции — объединение, пересечение, вычитание, сравнение множеств на эквивалентность, проверка вхождения подмножества в множество, удаление и/или добавление элемента.
Рассмотрим способы объявления множеств и работы с ними:
1 C# при использовании пространства имен System.Collections.Generic:
HashSet<int> T = new HashSet<int>();
Т.Add(‘1’);
Т.Add(‘2’);
Т.Add(‘3’);
Console.Write("Количество элементов множества: ", T.Count);
DisplaySet(T);
2 Pascal:
var
T:set of 1..N;
i:integer;
begin
T:=[1,2,3];
for i:=1 to N do if i in T then Write(i,' ');
ReadLn;
end.
Как видно на Pascal обладает встроенной библиотекой, которая позволяет краткой записью объявить множества, для работы с множествами C# требуется подключение пространства имен, да и запись множества довольна трудоемка. Также необходимо отметить, что Basic в отличие от Pascal и C# не обладает инструментом работы со множествами.
2.2.6. Файлы
Еще одной структурой данных, фундаментальной по значению в информационных технологиях (далее ИТ) вообще и используемой в языках программирования, является файл.
Файл представляет собой поименованную совокупность данных, которая хранится на диске или передается по сети.
Основные операции над файлами:θоткрытие в различных режимах — на чтение, запись, добавление и так далее.
Файлы в зависимости от их содержимого обычно делят на текстовые, графические, звуковые и так далее. В языках программирования принято использовать деление файлов на так называемые бинарные и текстовые. На самом деле в зависимости от этого файл не меняется, меняется лишь способ работы с ним. Рассмотрим объявление файлов в языках программирования.
1 Pascal:
var hta: file;
assign(hta,'c:\text.txt');
2 С#:
string path = @"C:\ hta.txt";
FileInfo fileInf = new FileInfo(path);
3 Basic:
Open "c:\ hta.txt" For Input As #1
Как видно из вышеописанного Pascal задает переменную, в которую передается содержимое файла, C# и Basic работают на прямую с фалом, но при этом только Basic в самом начале нуждается в определении, для чего будет применятся файл для ввода или вывода информации, в то время как Pascal и C# в этом не нуждаются.
2.3 Пример реализации записи данных
Для сравнения записи данных для различных языков программирования разработаем программу, которая будет заполнять массив и передавать его в запись, которую затем будет выводить.
Листинг программного кода на языке C#:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class Program
{
private static void DisplaySet(HashSet<int> set)
{
Console.Write("{");
foreach (int i in set)
{
Console.Write(" {0}", i);
}
Console.WriteLine(" }");
}
static void Main(string[] args)
{
Console.WriteLine("Введите n");
int n = int.Parse(Console.ReadLine());
int[] a = new int[n];
for (int i = 0; i < n; i++)
{
Console.WriteLine("Введите {0}-й элемент", i + 1);
a[i] = int.Parse(Console.ReadLine());
}
HashSet<int> evenNumbers = new HashSet<int>();
for (int i = 0; i < n; i++)
{
evenNumbers.Add(a[i]);
}
Console.Write("Множество: ", evenNumbers.Count);
DisplaySet(evenNumbers);
Console.ReadKey();
}
}
}
Результат работы программы отображен на рисунке 3.
Рисунок 3 – Результат работы программы
Листинг программного кода на языке Pascal:
uses crt;
var a:array[1..100] of integer;
I,n: integer; evenNumbers:set of 1..100;
begin
clrscr;
writeln(' Vvod n: ');
readln(n);
for i:=1 to n do begin
write(' Vvedite element {',i,'}');
readln(a[i]);
end;
for i:=1 to n do
include(evenNumbers,a[i]);
write('Mnozhestvo:');
for i:=1 to n do if i in evenNumbers then Write(i,' ');
ReadLn;
end.
Результат работы программы отображен на рисунке 4.
Рисунок 4 – Результат работы программы
Листинг программного кода на языке Basic:
Module Module1
Sub Main()
Dim n As Integer
Dim s As String
Console.WriteLine("Введите n:", n)
n = Integer.Parse(Console.ReadLine())
Dim a(n) As Integer
For i = 1 To n
Console.WriteLine("Введите {0}-й элемент", i)
a(i) = Integer.Parse(Console.ReadLine())
Next
s = ""
For i = 1 To n
If i = 1 Then
s = a(i).ToString()
ElseIf i > 1 Then
s = s + "," + a(i).ToString()
End If
Next
Console.WriteLine("Множество: ")
Console.WriteLine("[{0}]", s)
Console.ReadKey()
End Sub
End Module
Результат работы программы отображен на рисунке 5.
Рисунок 5 – Результат работы программы
Необходимо отметить, что Basic не обладает инструментами создания и работы данными типа Множество, поэтому множество можно представить в виде строки значений, при этом функции множеств- объединение, пересечение и так далее придется создавать собственные.
2.4 Анализ полученных результатов
Проанализируем эффективность описания данных для различных языков программирования (таблица 2).
Обозначения в таблице.
Простота - П
Ортогональность - О
Объем кода – ОК
Таблица 2 – Эффективность описания данных для различных языков программирования
|
Тип данных |
C# |
Pascal |
Basic |
||||||
|
П |
О |
ОК |
П |
О |
ОК |
П |
О |
ОК |
|
|
Простые типы данных |
10 |
10 |
10 |
10 |
10 |
8 |
10 |
10 |
8 |
|
Массивы |
10 |
10 |
10 |
9 |
9 |
8 |
10 |
9 |
7 |
|
Записи |
10 |
10 |
10 |
9 |
9 |
8 |
8 |
9 |
7 |
|
Множества |
9 |
7 |
7 |
10 |
10 |
10 |
0 |
0 |
0 |
|
Файлы |
9 |
8 |
9 |
9 |
9 |
10 |
10 |
10 |
8 |
|
ИТОГО |
48 |
45 |
46 |
47 |
47 |
44 |
38 |
38 |
36 |
Как видно из таблицы 2 язык программирования Pascal обладает всеми необходимыми инструментами для работы не только с простыми типами данных, но также с данными сложных структур – записи, множества, файлы. В отличие от Pascal язык программирования C# обладает более простой записью данных, объем кода при работе с данными простого типа является минимальным, а для работы с данными сложных типов применяются специальные пространства имен, что усложняет читабельность программного кода. Язык программирования Basic обладает в сравнении с вышеописанными языками программирования огромными недостатками – большой объем кода, простота написания, отсутствия встроенных механизмов описания данных типа множества.
ЗАКЛЮЧЕНИЕ
В данной работе был проведен сравнительный анализ описания данных для различных языков программирования.
В первом разделе была проанализирована основная литература, рассмотрена история развития языков программирования и их классификация.
В рамках работы над второй главой были раскрыты некоторые особенности описания данных на языках С#, Pascal. BAsic, описаны основные типы и методы языков программирования, позволяющие проводить быструю и корректную разработку программного обеспечения.
Также данный раздел включает в себя пример реализации программ, осуществляющей перевод массива в множество, на основании которых и проведен сравнительный анализ описания данных.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
- Окулова С. М. Основы программирования/ С. М. Окулова. – М.: Бином, 2018. – 332 с.
- Зыков С. В. Введение в теорию программирования/ С. В. Зыков. – М.: Интуит, 2018. – 400 с.
- Павловская Т. C#. Программирование на языке высокого уровня. Учебник для вузов/ Т. Павловская. – М.: Питер, 2016. – 432 с.
- Архангельский А.Я. Программирование в Delphi для Windows. Версии 2006, 2007, Turbo Delphi / А.Я. Архангельский. - М.: Бином-Пресс, 2015. - 1248 c.
- Шилдт Герберт. C# 4.0. Полное руководство/ Герберт Шилдт. – М.: Диалектика, 2019. – 1056 с.
- Балена Ф. Современная практика программирования на MS Visual Basic и Visual C# / Ф. Балена. - М.: Русская редакция, 2016. - 640 c.
- Хорев П. Б. Объектно-ориентированное программирование с примерами на C#. Учебное пособие/ П. Б. Хорев. – М.: Форум, 2019. – 200 с.
- Чистякова Т. Б. Программирование на языках высокого уровня. Базовый курс : учеб. пособие / Т. Б. Чистякова, Р. В. Антипин, И. В. Новожилова ; СПбГТИ(ТУ). - СПб. : [б. и.], 2018. - 101 с.
- Ковалев В.Г. Turbo Pascal 7.0. Практика программирования / В.Г. Ковалев, С.В. Ковалев. - М.: КноРус, 2014. - 540 c.
- Остроух А.В. Основы информационных технологий: Учебник / А.В. Остроух. - М.: Academia, 2017. - 183 c.
- Коваленко В. В. Проектирование информационных систем: учеб. пособие для вузов / В. В. Коваленко. - М. : Форум, 2016. - 319 с.
- Фаронов В.В. TurboPascal 7.0. Практика программирования: Учебное пособие / В.В. Фаронов. - М.: КноРус, 2012. - 414 c.
- Великович Л.С. Программирование для начинающих / Л.С. Великович. - М.: Бином. Лаборатория знаний, 2017. - 287 c.
- МакГрат М. Программирование на C для начинающих / М. МакГрат. - М.: Эксмо, 2015. - 192 c.
- Аболрус С. Программирование на Pascal / С. Аболрус. - СПб.: Символ-плюс, 2015. - 328 c.
- Перри Г. Программирование на C для начинающих / Г. Перри, Д. Миллер. - М.: Эксмо, 2016. - 192 c.
- Мартынов Б.М. Программирование для Windows на С/С++ в 2-х томах. т.2. / Б.М. Мартынов. - М.: Бином-Пресс, 2015. - 480 c.
- Истомин Е.П. Информатика и программирование: Pascal и VBA / Е.П. Истомин, А.М. Власовец. - М.: АИД, 2010. - 293 c.
- Мюллер Д. П., Семпф Б., Сфер Ч. C# для чайников/ Д. П. Мюллер. – М.: Диалектика, 2019. – 608 c.
- Васильев А.Н. Программирование на C# для начинающих. Особенности языка / А.Н. Васильев. - М.: Эксмо, 2017. - 128 c.