Автор работы: Пользователь скрыл имя, 15 Декабря 2013 в 20:35, курсовая работа
Для создания программы, способной решать поставленные задачи, используются различные языки программирования. На данный момент в мире существует большое количество языков программирования разных уровней, отличающихся друг от друга не только по синтаксису, но и по структуре работы с данными. В качестве объекта исследования для получения информации о возможностях функционально - ориентированных языков программирования высокого уровня будут рассматриваться два характерных представителя языков этого класса - Паскаль и Си.
•Введение
•1. Сравнительный анализ языков программирования высокого уровня Си и Паскаль
•1.1 Структура программы
•1.2 Типы данных
•1.2.1 Типы данных в Паскале
•1.2.2 Типы данных в СИ
•1.2.3 Пользовательские типы
•1.3 Арифметические операции
•Заключение
•Список использованных источников
Содержание
Введение
В современную эпоху
· постановка задачи;
· сбор данных, необходимых для решения задачи;
· реализация алгоритма обработки данных;
· трансляция алгоритма в структуру, способную решить поставленный алгоритм - программу или пакет программ;
· тестирование и отладка программы или пакета программ;
· применение программы или пакета программ к поставленной задаче;
· анализ полученных результатов.
Для создания программы, способной
решать поставленные задачи, используются
различные языки
1.Сравнительный анализ языков
программирования высокого
Язык высокого уровня - тип языка компьютерного программирования. Языки высокого уровня предназначены для выражения потребностей программиста, а не возможностей компьютера. Они используют абстрактные данные и контролируют структуры, символические обозначения и переменные. Существует много языков высокого уровня, в том числе Бейсик (BASIC), Кобол (COBOL), Паскаль (Pascal), Фортран (FORTRAN) и Си (C). Чтобы можно было использовать программы, написанные на языках высокого уровня, их нужно перевести в машинные коды. Рассмотрим в противопоставлении языки высокого уровня Си и Паскаль.
1.1 Структура программы
1.1.1 Структура программы на Паскаль
Программа на языке Паскаль состоит из заголовка, разделов описаний и раздела операторов. Заголовок программы содержит имя программы, например:
Program PRIM;
Описания могут включать в себя:
Раздел описания модулей определяется служебным словом USES и содержит имена подключаемых модулей (библиотек) как входящих в состав системы Turbo Pascal, так и написанных пользователем. Раздел описания модулей должен быть первым среди разделов описаний. Имена модулей отделяются друг от друга запятыми:
uses CRT, Graph;
Любой оператор в программе может быть помечен меткой. Имя метки задается по правилам образования идентификаторов Турбо Паскаль. В качестве метки также могут использоваться произвольные целые числа без знака, содержащие не более четырех цифр. Метка ставится перед оператором и отделяется от него двоеточием. Все метки, используемые в программе, должны быть перечислены в разделе описания меток, например:
label 3, 471, 29, Quit;
Описание констант позволяет использовать имена как синонимы констант, их необходимо определить в разделе описания констант:
const K= 1024; MAX= 16384;
В разделе описания переменных необходимо указать все переменные, используемые в программе, и определить их тип:
var P,Q,R: Integer;
A,B: Char;
F1,F2: Boolean;
Описание типов, процедур и функций будет рассмотрено ниже. Отдельные разделы описаний могут отсутствовать, но следует помнить, что в Паскаль - программе должны быть обязательно описаны все компоненты программы.
Раздел операторов представляет собой составной оператор, который содержит между служебными словами
begin.......end
последовательность операторов. Операторы отделяются друг от друга символом ;. Текст программы заканчивается символом точка.
Кроме описаний и операторов Паскаль
- программа может содержать
Пример 1
program Primer; {вычисление суммы двух чисел}
var
x,y,s: integer;
begin
WriteLn('Введите через пробел два числа ');
ReadLn(x,y);
s := x + y;
WriteLn('Сумма чисел равна ',s);
end.
Данная программа запрашивает с клавиатуры два числа, находит их сумму и выводит ответ. Теперь сделаем так, чтобы программа сначала очищала экран, выполняла свои действия, а в конце работы позволяла пользователю посмотреть результат, ожидая его нажатия клавиши.
Пример 2
program Primer; {вычисление суммы двух чисел}
uses Crt; {подключение модуля, необходимого для процедур
очистки экрана и задержки}
var
x,y,s: integer;
begin
ClrScr; {очистка экрана}
WriteLn('Введите через пробел два числа ');
ReadLn(x,y);
s := x + y;
WriteLn('Сумма чисел равна ',s);
ReadKey; {ожидание нажатия клавиши}
end.
1.1.2 Структура программы на Си.
Рассмотрим
структуру исходной программы на
Си и опеределим термины, используемые
при описании языка.
Исходная программа -
это совокупность следующих объектов:
директив, указаний компилятору, объявлений
и определений.
Директивы задают
действия препроцессора по преобразованию
текста программы перед компиляцией.
Указания компилятору -
это команды, выполняемые компилятором
во время процесса компиляции. Объявления
задают имена и атрибуты переменных, функций
и типов, используемых в программе.
Определения -
это объявления, определяющие переменные
и функции.
Определение переменной в
дополнении к ее имени и типу задает начальное
значение объявленной переменной. Кроме
того, определение предполагает распределение
памяти для переменной.
Определение функции специфицирует
ее структуру, которая представляет собой
смесь из объявлений и операторов, которые
образуют саму функцию. Определение функции
также задает имя функции, ее формальные
параметры и тип возвращаемой величины.
Исходная программа может содержать
любое число директив, указаний компилятору,
объявлений и определений. Любой из объектов
программы имеет определенный синтаксис,
и каждая составляющая может появляться
в любом порядке.
В следующем примере иллюстрируется
простая исходная программа на языке Си.
int х = 1; /* Определение переменных
*/
int у = 2;
extern int printf(char * , ...) /* Объявление функции
*/
main() /* Определение функции main */
{
int z; /* Объявление переменных */
int w;
z = у + х; /* Операторы */
w = у - х;
printf("z = %d \nw = %d \n", z, x);
}
Эта исходная программа определяет функцию
с именем main и объявляет функцию printf. Переменные х и у задаются своими
определениями. Переменные z и w только
объявляются.
Каждая программа содержит главную программную
функцию. В Си главная программная функция
должна быть именована как main. Функция main служит точкой старта
при выполнении программы и обычно управляет
выполнением программы, организуя вызовы
других функций. Программа обычно завершает
выполнение по окончанию функции main, хотя она может завершиться
и в других точках.
Исходная программа обычно включает
в себя несколько функций, каждая из которых
предназначена для выполнения определенного
задания. Функция main может вызывать эти
функции с тем, чтобы выполнить ту или
иную задачу. Функция возвращает управление
при выполнении оператора return или по окончанию самой
функции (выход на конец функции).
Все функции, включая функцию main, могут быть объявлены
с параметрами. Вызываемые функции получают
значения параметров из вызывающих функций.
Значения параметров функции main могут быть переданы
из внешнего окружения. Например, они могут
быть переданы из командной строки.
Соглашение Си требует, чтобы первые
два параметра функции main (если они необходимы)
назывались argc и argv.
Параметр argc определяет общее число
аргументов, передаваемых функции main. Параметр argv объявляется как массив
указателей, каждый элемент которого ссылается
на строковое представление аргумента,
передаваемого функции main. Третий параметр функции main (если он есть) традиционно задается
с именем envp. Однако Си не требует
этого имени. Параметр envp - это указатель на массив
указателей строковых величин, которые
определяют окружение, в котором выполняется
программа.
Операционная система поддерживает передачу
значений для argc, argv, и envp параметров, а пользователь
поддерживает задание значений фактических
параметров для функции main. Соглашение о передаче
параметров в большей степени определяется
операционной системой, чем самим языком
Си.
Функция printf() возвращает число выведенных символов или отрицательное значение в случае ошибки.
Чтобы принять аргументы командной строки, используются два специальных встроенных аргумента: argc и argv. Параметр argc содержит количество аргументов в командной строке и является целым числом, причем он всегда не меньше 1, потому что первым аргументом считается имя программы. А параметр argv является указателем на массив указателей на строки. В этом массиве каждый элемент указывает на какой-либо аргумент командной строки. Все аргументы командной строки являются строковыми, поэтому преобразование каких бы то ни было чисел в нужный двоичный формат должно быть предусмотрено в программе при ее разработке.
Вот простой пример использования аргумента командной строки. На экран выводятся слово Привет и ваше имя, которое надо указать в виде аргумента командной строки.
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
if(argc!=2) {
printf("Вы забыли ввести свое имя.\n");
exit(1);
}
printf("Привет %s", argv[1]);
return 0;
}
1.2 Типы данных.
1.2.1 Типы данных в Паскале.
Простые типы данных Паскаля: числа с плавающей
запятой (real), целые (
Целочисленные типы:
Тип |
Диапазон |
Формат |
Размер в байтах |
Byte |
0..255 |
Беззнаковый |
1 |
ShortInt |
−128..127 |
Знаковый |
1 |
SmallInt |
−32768..32767 |
Знаковый |
2 |
Word |
0..65535 |
Беззнаковый |
2 |
Integer |
-32768..32767 |
Знаковый |
2 |
Cardinal |
=LongWord |
Беззнаковый |
4 |
LongWord |
0..4294967295 |
Беззнаковый |
4 |
LongInt |
−2147483648..2147483647 |
Знаковый |
4 |
Int64 |
−9223372036854775808.. |
Знаковый |
8 |
QWord |
0..18446744073709551615 |
Беззнаковый |
8 |
Числа с плавающей запятой:
Тип |
Диапазон |
количество значащих цифр |
Размер в байтах |
Real/Double |
зависит от платформы |
??? |
8 |
Real48 |
??? |
11-12 |
6 |
Single |
1.5E-45..3.4E38 |
7-8 |
4 |
Extended |
1.9E-4932..1.1E4932 |
19-20 |
10 |
Comp |
−2E64+1..2E63-1 |
19-20 |
8 |
Currency |
−922337203685477.5808.. |
19-20 |
8 |
var { секция объявления переменных }
r: Real; { переменная вещественного типа }
i: Integer; { переменная целого типа }
c: Char; { переменная-символ }
b: Boolean; { логическая переменная }
s: String; { переменная строки }
t: Text; { переменная для обьявления текстового файла }
e: (apple, pear, banana, orange, lemon); { переменная типа-перечисления }
1.2.2 Типы данных в CИ.
|
1.2.2 Пользовательские типы
В обоих языках реализована возможность создавать псевдонимы для существующих типов и новые типы. [7]Кроме стандартных типов данных Паскаль поддерживает скалярные типы, определенные самим пользователем. К ним относятся перечислимые типы (когда непосредственно, в разделе описания типов, заранее записываются все значения для переменных этого типа) и интервальные (когда задаются границы диапазона значений для данной переменной), указательные типы (кроме Pointer), структурированные типы и процедурные типы. Данные этих типов занимают в памяти один байт, поэтому скалярные пользовательские типы не могут содержать более 256 элементов. Их применение значительно улучшает наглядность программы, делает более легким поиск ошибок, экономит память.
Информация о работе Сравнительный анализ языков программирования