Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Для решения задачи в какой-либо проблемной области необходимо написать программу, в которой должны быть команды, позволяющие:

Кафедра: Автоматика и Информационные Технологии

ОСНОВЫ С


ОГЛАВЛЕНИЕ

Введение

Глава 1. Основы языка Си

1.1. Алфавит

1.2. Основные конструкции Си

1.3. Ввод-вывод.

1.3.1. Вывод

1.3.2. Ввод

1.4. Базовые типы данных языка Си

1.4.1. Идентификаторы.

1.4.2. Типизированные константы

1.4.3. Переменные

1.4.3.1. Целые типы

1.4.3.2. Вещественные типы

1.4.3.3. Символьные типы

1.4.4. Тип данных строка

1.4.5. Структуры

1.4.5.1. Массивы

1.4.5.2. Записи

1.4.6 Область видимости и время жизни переменных

1.5. Основные операторы

1.6. Препроцессор

1.7. Программы. Функции

1.8. Указатели

1.9. Указатели и функции

1.10. Файлы

1.11. Дополнительные функции Си

1.11.1. Функции преобразования

Функции преобразования символьных строк: atoi(), atof(). 37с.

1.11.3. Функции, работающие со строками

1.12. Особенности программирования на языке Си

1.12.1. Модули. Многомодульное программирование

1.12.2. Модели памяти

1.12.3. Программирование в DOS и Windows

1.12.4. Использование языка ассемблера в программах на Си

Глава 2. Примеры использования языка Си

2.1. Сортировка

2.2. Рекурсивные алгоритмы

2.3. Задача "Ханойские башни"

Глава 3. Основы С++

3.1. Отличия С++ от Си

3.2. Объектно-ориентированное программирование в С++

3.2.1. Классы

3.2.2. Перегрузка функций

3.2.3. Конструкторы

3.2.4. Деструкторы

3.2.5. Конструкторы с параметрами

3.2.6. Введение в наследование

3.2.7. Виртуальные функции

3.2.8. Указатели на объекты

Глава 4. Основы программирования на языке С++Builder

4.1. Характеристика С++Builder

4.2. Компоненты VCL. Свойства. События. Методы

4.2.1. Типы компонент

4.2.2. Иерархия классов VCL

4.3. Структура файлов в С++Builder

4.4. Визуальные компоненты(VCL)

4.5. Программы, управление событиями, исключения

4.6. Стратегия отладки Windows-программ

4.7. Использование компонент VCL в разработке программ

4.8. Графические компоненты.

4.9. Мультимедиа

4.10. Спрайтовая графика

4.11. Объектная технология OLE2

4.12. Библиотеки DLL.

4.13. Разработка визуальных компонент

4.14. Введение в программирование CGI

3.15. Программирование баз данных.

3.16. Пакеты

Заключение

Литература

Приложение N1

Оглавление


Введение

 

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

 В 1890 году в США изобретателем Германом Холлеритом разработана электромеханическая счетная машина - табулятор, управляемая перфокартами, была использована для составления таблиц с результатами переписи населения США. Основанная Холлеритом фирма по производству табуляторов впоследствии превратилась в корпорацию International Business Machines (IBM).

В 1936 году двадцатипятилетний студент Кембриджского университета англичанин Алан Тьюринг опубликовал статью "О вычислимых числах", в которой рассматривалось гипотетическое устройство ("машина Тьюринга"), пригодное для решения любой разрешимой математической или логической задачи, - прообраз программируемого компьютера.

В1941 году немецкий инженер Конрад Цузе построил действующий компьютер Z3, в котором использовалась двоичная система счисления. Программы записывались на перфоленте.

В 1945 году в высшем техническом училище Пенсильванского университета (США) физик Джон Мочли и инженер Проспер Экерт построили полностью электронную машину "Эниак". Для задания программы было необходимо вручную установить тысячи переключателей и воткнуть сотни штекеров в гнезда контактной панели.

1 июня 1945 года был разослан отчет американского математика венгерского происхождения Джона фон Неймана "Предварительный отчет о машине Эдвак", содержащий концепцию хранения команд компьютера в его собственной внутренней памяти.

21 июня 1948 года в Манчестерском университете (Великобритания) на машине "Марк-1" выполнена первая в мире хранимая в памяти машины программа - поиск наибольшего сомножителя заданного числа.

В 1949 году под руководством Мориса Уилкса создан компьютер "Эдсак". Проектировщики "Эдсака" ввели систему мнемонических обозначений, где каждая машинная команда представлялась одной заглавной буквой, и автоматизировали настройку подпрограмм на определенное место в памяти. Морис Уилкс назвал мнемоническую схему и библиотеку подпрограмм собирающей системой (assembly system) - отсюда слово "ассемблер".

В 1949 году в Филадельфии (США) под руководством Джона Мочли создан "Краткий код" - первый примитивный интерпретатор языка программирования.

В 1951 году в фирме Remington Rand американская программистка Грейс Хоппер разработала первую транслирующую программу. Хоппер назвала ее компилятором (compiler - компоновщик).

В 1957 году на 20-м этаже штаб-квартиры фирмы IBM на Мэдисон-авеню в Нью-Йорке родился язык Фортран (FORmula TRANslation - трансляция формул). Группой разработчиков руководил 30-летний математик Джон Бэкус. Фортран - первый из "настоящих" языков высокого уровня.

В 1972 году 31-летний специалист по системному программированию из фирмы Bell Labs Деннис Ритчи разработал язык программирования Си.

В 1984 году французский математик и саксофонист Филип Кан основывает фирму Borland International.

Далее появился диалект языка Си фирмы Borland.

Первоначально Си был разработан как язык для программирования в операционной системе Unix.

Вскоре он стал распространяться для программистов-практиков. В конце 70-х были разработаны трансляторы Си для МикроЭВМ для операционной системой СР/M.

После появления IBM PC стали появляться и компиляторы Си (для этого компьютера их сейчас более 20).

В 1983 г. Американский Институт Стандартов (ANSI) сформировал Технический Комитет X3J11, для создания стандарта языка Си. Появившийся на рынке язык Си++ корпорации Borland подчиняется большинству требований стандарта.

По сути своей Си является языком функций. Программирование на Си, осуществляется путем написания функций и обращения к библиотечным функциям. Большинство функций возвращают некоторые значения, которые могут использоваться в других операторах.

Среди множества достоинств языка Си нужно отметить основные:

- универсальность (используется почти на всех существующих ЭВМ);

- компактность и универсальность кода;

- быстрота выполнения программ;

- гибкость языка;

- высокую структурированность.

 


Глава 1. Основы языка Си

Алфавит

Алфавит языка состоит из следующих символов:

Заглавные и строчные латинские буквы A-Z, a-z и символ подчеркивания. Цифр от 0 до 9. Специальных символов + - * / = > <.;,: [ ] { } () # $.

Символы пробел, табуляция, перевод строки, возврат каретки называются пробельными.

Программа на Cи++ представляет собой последовательность ACSII-символов, представляющих собой ее исходный текст.

Основные конструкции Си

 

Рассмотрим простую программу печати на экране фразы "Привет от ЭВМ"

#include <stdio.h>

main()

    // программа

{

    printf("Привет от ЭВМ\n");

}

Рассмотрим структуру программы

 

Cи– программа      
 

# Директивы препроцессора

 
       
  Main    
       
    Операторы  
       
       
  Функция 1()    
       
    Операторы  
       
  Функция n ()    
       
    Операторы  
      Описания
      Присваивания
      Функции
      Управления
      Пустые

 

Команда #include подключает файл stdio.h к нашей программе. В файле содержится сведения о функциях ввода-вывода.

Файл с именем stdio.h содержит информацию о вводе-выводе.

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

Строка main() содержит название функции, с которой всегда начинается программа. Пустые скобки обозначают, что эта функции, но она без параметров.

После символов // стоят комментарии (для одной строки), (комментариями также называются символы, стоящие между /* и */).

Фигурные скобки {} отмечают начало и конец тела программы или функции. Они также применяются для объединения нескольких операторов программы в блок.

В строке printf ("Привет от ЭВМ\n") содержится стандартная функция печати Си. Строка символов, заключенная в скобки (аргумент), является информацией, передаваемой функции printf() из нашей главной функции main(). Когда выполнение функции будет завершено, управление вернется обратно в исходную программу. Символ \n - обозначает перевод строки на новую строку после печати.

Рассмотрим следующий пример - написать программу перевода метров в сантиметры.

#include <stdio.h>

#include <conio.h>

main()

{

 int I;

 int J;

    int C;

    printf("M? \n");

    scanf("%d",&I);

    J=100*I;

    printf(" В %d М содержится %d cm\n", I,J);

    C=getch();

}

В данной программе определены две целочисленные переменные I и J.

Введена функция scanf("%d",&I); которая позволяет вводить десятичное число с клавиатуры и значение присвоить переменной I, далее по команде J=100*I; идет вычисление4.

Следующая строка printf(" В %d М содержится %d cm\n", I,J); печатает фразу. На место первого %d (d- целая переменная) ставится значение I, на место второго %d ставится значение J.

Функция getch() позволяет задержать изображение на экране и требует любого символа, чтобы закончить работу.

Рассмотрим еще пример. Напишем функцию и вызовем ее из нашей программы.

#include <stdio.h>

#include <conio.h>

supervisor()

{

printf("Вы меня вызывали?\n");

}

main()

{

char C;

printf("Я вызываю функцию supervisor.\n");

supervisor();

printf("Да. Посмотрите, кто из студентов спит и разбудите их.\n");

C=getch();

}

Вначале описываем функцию supervisor(), а затем обращаемся к ней в основной программе по команде supervisor();. В результате получаем диалог:

- Я вызываю функцию supervisor.

- Вы меня вызывали?

- Да. Посмотрите, кто из студентов спит, и разбудите их.

Ввод-вывод

Для решения задачи в какой-либо проблемной области необходимо написать программу, в которой должны быть команды, позволяющие:

- выделять место для хранения данных;

- вводить исходные данных;

- обрабатывать исходные данные по алгоритму;

- выводить выходные данные.

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

Вывод

Вывод осуществляется на экран, принтер, винчестер (гибкие диски), порт. Рассмотрим функции вывода на экран.

Функция printf предназначена для этой цели. Формат: printf(<формат>[,аргумент1],...).

Формат - это строка в двойных кавычках, которая выводится на экран. Перед выводом printf заменяет все объекты в строке в соответствии со спецификациями аргумента. Например, printf(" В %d М содержится %d cm\n", I,J); %d в строке формата - это спецификация аргумента.

Спецификации аргумента начинаются с символа процента (%) и одной буквой, обозначающей тип данных.

%d, используемое в спецификации, говорит о том, что ожидается некоторое целое число. Вот несколько других общеиспользуемых спецификаций формата:

- %d целое число;

- %u целое число без знака;

- %ld длинное целое число;

- %p значение указателя;

- %f число с плавающей точкой;

- %e число с плавающей точкой в экспоненциальной форме;

- %c cимвол;

- %s строка;

- %x целое в шестнадцатеричном формате.

Можно задать ширину поля, например %6d -поле шириной 6.

Значение будет напечатано сдвинутым вправо (впереди пробелы), так что общая ширина поля равна 6.

Для формата вещественных чисел можно указать дробную часть, например %8.4f - поле шириной 8, десятичная часть 4.

В конце форматной строки можно поставить знаки:

\n перевод строки;.

\f (перевод формата или очистка экрана)

\t (табуляция)

\b (забой <-)

\xhhh (вставка символа c кодом ASCII hhh, где hhh содержит от 1 до 3 16-ричных цифр)

Для вывода можно использовать функции: puts и putchar.

Функция puts выводит строку на экран. Например:

#include <stdio.h>

main ()

{

    puts("Привет, студент");

}

Функция putchar выводит на экран один символ.

Ввод

Ввод в Си в основном осуществляется с клавиатуры, из файла и порта.

Функция scanf аналогична printf. Ее формат: scanf(<формата>[,аргумент1],...). В scanf используются те же спецификаторы формата, что и у функции printf. Необходимо отметить, что scanf имеет одну особенность: аргументы, следующие за строкой формата, должны быть адресами, а не значениями (это не распространяется на символьные переменные). Ранее в примерах мы видели, что при вводе целого числа записывалась функция следующим образом:

scanf("%d", &a);

& -операция адреса, которая передает scanf адреса.

При вводе нескольких переменных через запятую можно использовать запятую внутри формата. Пример:

scanf ("%d, %d", &a, &b);

Теперь можно вводить, например 23,56.

Имеются сложности с вводом строки символов из нескольких слов - введутся только данные до первого пробела. Для решения этой проблемы существует функция gets.

#include <stdio.h>

main ()

{

char name [60];

printf("Как вас зовут: ");

gets (name);

printf ("Привет, %s\n", name);

}

Функция gets читает все, что набирается до тех пор, пока не нажат Ввод.

В С++ ввод-вывод может осуществляться не только с помощью функций, но и с помощью операций. Операция вывода << операция ввода >>.

Формат вывода на экран:cout<< выражение.

Формат ввода с клавиатуры:cin<< переменная.

При использовании операций ввода-вывода необходимо включить в программу файл iostream.h.

Пример:

#include <iostream.h>

main()

{

    int i;

    cout << "Целое число?: ";

    cin >> i;

    cout << " Квадрат числа: " << i*i << "\n";

    return 0;

}

Возможен ввод-вывод нескольких величин (через пробел).


Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...