- •1 Введение
- •2 Сравнительный анализ языков программирования Си и Паскаль
- •2.1 История создания языков программирования
- •2.2 Типы данных
- •2.3 Комментарии
- •2.4 Операции
- •2.5 Операторы ветвления
- •2.6 Массивы
- •2.7 Строки
- •2.8 Подпрограммы
- •2.9 Указатели
- •2.10 Заключение сравнительного анализа языков Си и Паскаль
- •3 Постановка задачи
- •3.1 Алгоритм решения поставленной задачи
- •4 Реализация компьютерной игры «100 спичек»
- •4.1 Создание меню
- •4.2 Копка Help
- •4.3 Кнопка ComputerVsPerson
- •4.4 Кнопка PersonVsPerson
- •4.5 Кнопка ComputerVsComputer
- •4.6 Кнопка Exit
- •4.7 Данные к работе
- •5 Заключение
- •6 Список используемых источников
- •Приложение а (справочное)
2.9 Указатели
Указатели в языке Паскаль:
Указатель - это переменная, которая в качестве своего значения содержит адрес байта памяти [7]. Длина внутреннего представления указателя составляет 4 байта. В Паскале над указателями не определены никакие операции, кроме операций присвоения и отношения.
type
a = ^b;
b = record
x: Integer;
y: Char;
z: a;
end;
var
pointer_to_b: a;
Здесь переменная pointer_to_b — указатель на тип данных b, запись. Указатели могут быть использованы перед объявлением. Это исключение к правилу, которое гласит, что любая вещь должная быть объявлена перед тем, как используется. Введение этого исключения позволило организовывать рекуррентные определения структур данных, в том числе такие, как линейные списки, стеки и очереди, включая указатель на запись в описании этой записи.
Указатели в языке Си:
Так как указатель может ссылаться на переменные разных типов, с указателем в языке Си связывается тип того объекта, на который он ссылается. Для описания указателей используется операция косвенной адресации *. Например, указатель целого типа uk описывается так : int *uk. Унарная операция &, примененная к некоторой переменной, показывает, что нам нужен адрес этой переменной, а не ее текущее значение. Если переменная uk объявлена как указатель, то оператор присваивания uk=&x означает: "взять адрес переменной x и присвоить его значение переменной-указателю uk" [7].
2.10 Заключение сравнительного анализа языков Си и Паскаль
Языки Паскаль и Си позволяют работать с данными сложной структуры, обеспечивают контроль типов данных, имеют развитые средства для выделения отдельных частей программ в процедуры. Если судить по числу зарезервированных слов, то Си легче, чем Паскаль. Можно привести множество плюсов и минусов как в одном языке, так и в другом. В некотором смысле язык Си – самый универсальный, т.к. кроме набора средств, присущих современным языкам программирования высокого уровня (структурность, модульность, определенные типы данных). Большой набор операторов и средств требует от программиста осторожности, аккуратности и хорошего знания языка со всеми его преимуществами и недостатками. На основе проведенного выше сравнения языков Си и Паскаль для реализации данного проекта выбран язык программирования Си.
3 Постановка задачи
Пусть дана кучка, первоначально содержащая 100 спичек, двое играющих поочередно берут по нескольку спичек: не менее одной и не более десяти. Проигрывает игрок, взявший последнюю спичку.
В данной игре необходимо предусмотреть возможность игры человек-человек, человек-машина, машина-машина.
Требования к проекту:
Текст вспомогательного меню должен быть выведен из файла;
Дружественный интерфейс игры;
Цвет фона игры не должен быть черным;
Меню, делающее управление игрой более удобным.
Для реализации данного курсового проекта необходимо разработать компьютерную игру на языке Си, для этого нужно:
Необходимо оформить игру «100 спичек» с помощью графического интерфейса;
Создание меню, для управления игрой (дружественный интерфейс);
Организация работы с файлом;
Разработка игрового процесса (стратегии игры).
Цель игры состоит в попытке разработать стратегию ходов, для того, чтобы соперник проиграл, взяв последнюю спичку.