У вас вопросы?
У нас ответы:) SamZan.net

Вильямс 2002 704 с

Работа добавлена на сайт samzan.net:

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 29.12.2024

Рекомендуемая литература:

  1.  Шилдт, Герберт. Полный справочник по С, 4-е издание. : Пер. с англ. - М,: Издательский дом "Вильямс", 2002. - 704 с. : ил.
  2.  Березин Б.И., Березин С.Б. Начальный курс С и С++. - М,: ДИАЛОГ_МИФИ, 1996. - 288 с.
  3.  Архангельский.А.Я, Тагин М.А. Программирование в С++Builder 6 b 2006.-М.: ЗАО “БИНОМ”, 2006.
  4.  Подбельский В.В., Фомин С.С. Программирование на языке Си: Учеб. пособие. - М.: Финансы и статистика, 1998. - 600 с.: ил.
  5.  Джонс Р., Стюарт Я. Программируем на Си/Пер. с англ. и предисл. М.Л. Сальникова, Ю.В. Сальниковой. - М.: Компьютер, ЮНИТИ, 1994. - 236 с.: ил.
  6.  Джесс Либерти. Освой самостоятельно С++ за 21 день./Несколько изданий.
  7.  Марченко А.Л. С++.Бархатный путь. – есть файл
  8.  Скляров В.А. Программирование на языках Си и Си++: Практ. пособие. - М.: Высш. шк., 1996. -240 с.: ил.
  9.  Пашенков В.В. Язык программирования Си. - М.: Центр НТТМ "Алгоритм", 1990. - 76 с.
  10.  www.proklondike.com


История языка С

Предшественники  языка C  : BCPL  и   B.
     BCPL разработан в 1967 году Мартином Ричардом как язык написания компиляторов программного обеспечения операционных систем.

    Язык BCPL индуцировал появление языка B, который разработал  Кен Томпсон. Он использовал его в 1970 году для создания одной из ранних версий операционной системы UNIX в Bell Laboratories на компьютере фирмы DEC PDP-7.

Язык программирования С разработан Деннисом  Ритчи

Язык С:

  •  базовый язык операционной системы UNIX и создавался для ее реализации;
    •  создан также в целях переноса популярной операционной системы UNIX с одной ЭВМ на другую;
    •  

впервые реализован на малой ЭВМ PDP-11 


В конце 70-х годов C превратился в язык, называемый теперь "традиционным C" или "классическим C" или  "C Кернигана и Ритчи". В это же время издательством Prentice-Hall была опубликована ставшая знаменитой книга Кернигана и Ритчи "Язык программирования C".

Бьерн Строуструп (Bjarne Stroustrup) из той же Bell Laboratories создал потомок языка С - язык С++ или "Си с классами".

ANSI (Американский Национальный Комитет Стандартов) скооперировался с Международной Организацией Стандартов (International Standards Organizations - ISO), чтобы стандартизировать C в мировом масштабе. Совместный стандарт был опубликован в 1990 году и назван ANSI/ISO 9899: 1990.  

В 1995 году была принята Поправка к стандарту С. Затем появился стандарт ISO/ANSI С++ в 1998г.

С++Builder до версии С++Builder 2006  выпускала корпорация Borland.

Потом с февраля 2006 – дочернее подразделение  CodeGear.

В июне 2008г. Embarcadero Technologies приобрело CodeGear.

Сейчас  продается RAD Studio 2010 Architect- среда быстрой разработки приложений для Microsoft Windows (Delphi, C++Builder, C#Builder).

Алфавит

Алфавит C++ включает:

  •  строчные и прописные буквы латинского алфавита,
  •  цифры от 0 до 9,
  •  символ '_' (подчеркивания),
  •  набор специальных символов:
    " { } , | [ ] + - % / \ ; ' : ? < > = ! & # ~ ^ . *
  •  прочие символы.

Алфавит C++ служит для построения слов, которые в C++ называются лексемами. Различают пять типов лексем:

  •  идентификаторы,
  •  ключевые слова,
  •  знаки (символы) операций,
  •  литералы,
  •  разделители.

Язык С  различает  прописные и строчные буквы !!!

переменные  Width, WIDTH и width различны

Первым символом идентификатора может быть только буква

n111

В именах переменных можно использовать символ подчеркивания

Пробел – не допускается!

my_number

Нельзя  использовать символ подчеркивания вначале имени переменной

используют в именах системных переменных и констант, а также библиотечных функций,

например, __fastcall

Комментарий в тексте программы

/*    это пример

     моей функции  */

или

// это пример моей функции      

     

В C++ существует четыре типа литералов:

  •  целочисленный литерал

Литерал начинается с 0 (нуля).

Литерал, начинается с 0x или 0X

служит для записи целочисленных значений и является последовательностью цифр (возможно со знаком '-').

восьмеричное целое(цифры 8 и 9 запрещены), 055

шестнадцатеричное целое (может включать символы от A или a, до F или f, которые в шестнадцатеричной системе эквивалентны десятичным значениям от 10 до 15, 0xFFFF

  •  вещественный литерал,

вещественное значение (обычная десятичная или научная нотация). В научной нотации мантисса отделяется от порядка литерой E или e).

2e+10

  •  символьный литерал-  последовательность из одной или нескольких литер, заключённых в одинарные кавычки. Любая литера может быть представлена в форматах представления:

         обычном

         восьмеричном

         шестнадцатеричном

Некоторые управляющие символы:

                                                             \n

                                                             \r

                                                             \t

                                                             \v

                                                             \0

                                                             \xN

                                                                   

                                                             \N

литера Z может быть представлена литералами

'Z'

'\132'

'\x5A'

перевод строки

возврат каретки

горизонтальная табуляция

вертикальная табуляция

нулевой байт

N -шестнадцатеричный код символа

N- восьмеричный код символа

  •  строковый литерал- последовательность (возможно, пустая) литер, заключённых в двойные кавычки и  заканчивающаяся нулевым байтом

“Это язык С”


Типы данных в C

Основные типы

char, int, float, double, void

типы с модификаторами

short (короткий),  long(длинный),

signed(cо знаком),  unsigned (без знака)

Производные

Указатели и ссылки на какие-то типы,

Массивы каких-то типов,

Типы функций,

Структуры, объединения, классы

Целочисленные

Тип данных

Байты

Биты

Min

Max

char

1

8

- 128

127

unsigned char

1

8

0

255

short

2

16

-32 768

32 767

unsigned short

2

16

0

65 535

int

4

32

-2 147 483 648

2 147 483 647

unsigned int

4

32

0

4 294 967 295

long

4

32

-2 147 483 648

2 147 483 647

unsigned long

4

32

0

4 294 967 295

Форматы с плавающей запятой

Тип данных

Байты

Биты

Min

Max

float

4

32

-3.4e-38 |

3.40e+38

double

8

64

-1.7e-308

1.7e+308

Long double

10

80

-3.4e-4932

1.1e+4932

Логический тип bool 

Особенность  С++Builder

Тип bool реализован как отдельный тип, а не как псевдоним целого

Объявление переменных и их инициализация

Тип  <список  переменных>;

int  x,y,z;

float xx;

long double yy;

Тип  <переменная>=константа;

int p=12;

char ch=’a’;

typedef  определение типа   идентификатор;

(переопределение типа)

typedef char symbol;

#define  имя макроса  символы

(директива вводит макроопределение)

#define K 5

(K=5)

Правила  для автоматического приведения типов при вычислении арифметических выражений

Если выражение содержит операнды разных типов, то тип операнда “младшего” типа приводится к типу операнда “старшего” типа,

т.е. менее точный тип приводится к более точному.

Тип переменной

Преобразуется в

char, short int

int

float

double

В операторе присваивания  конечный результат приводится к типу переменной в левой части оператора присваивания, причем тип может повышаться  или понижаться

Задача1. first=second ?

 unsigned short int first = 60000;

 signed short int second = 60000;


Задача 2

double  a=5.4, b=2;

int c=a*b;

Ответ:1- 10.8      2- 10

   

Явное приведение типа

(тип) переменная

int m=1,n=2;

double a=(double)m/n;

Структура программы

// Заголовочные файлы

#include <conio.h>

#include <stdio.h>

//---------------------------------------------------------------------------

 function1();// прототип функции обязателен

function2();

    …

functionN();

main(void) // главная  функция

{

  function1(); // вызов функции

  function2();

   …

  functionN();

}

 function1() // Определение функции

  {

    … // тело функции

   }

 function2() // Определение функции

  {

    …  // тело функции

   }

   …

 functionN() // Определение функции

  {

    …  // тело функции

   }


Форматированный ввод-вывод в консольном приложении

Функции printf() и scanf()

Прототипы функций находятся в файле stdio.h.

Управляющая строка содержит:

  •  символы, которые непосредственно выводятся на экран
  •  команды формата (спецификаторы формата), определяющие как выводить аргумент

Команда формата

Обозначение

символ

%d или  %i

целое десятичное

%e

десятичное число в виде  x.xx e+xx

%E

десятичное число в виде  x.xx E+xx

%f 

десятичное число c плавающей запятой xx.xxx

%lf

десятичное число c плавающей запятой двойной точности xx.xxx

%o

Восьмеричное число

%s

Строка символов

%u

Беззнаковое десятичное число

%x

Шестнадцатеричное число 5a5f

%X

Шестнадцатеричное число 5A5F

%p или %n

Указатель


Пример1 Простой ввод-вывод в стиле С

#pragma hdrstop

#include <stdio.h>//библиотека содержит прототипы функций printf и 

//scanf ,puts

#include <conio.h>//библиотека содержит прототип функции getch

//---------------------------------------------------------------------------

#pragma argsused

int main(int argc, char* argv[]) //заголовок основной функции 

{

  int year,month;// описание целых чисел

  year=2008;     // оператор присвоения

  printf("Now %d year\n",year); // вывод на экран целого числа

  printf("Input number of month:");// вывод  на экран запроса

//  puts("Input number of month:");// другой вариант вывода запроса;

                                                         //puts переводит курсор на другую строку

  scanf("%d",&month);// чтение целого числа

  printf("Now %d year, %d month \n",year,month);//вывод результата

  printf(“Press <ENTER>”);

  getch();

   return 0;

}

Пример 2

Неправильно

Правильно

double a;

 scanf("%f",&a);// 2.5657

 printf("Число=%f",a);

double a;

 scanf("%lf",&a); // 2.5657

 printf("Число=%lf",a);

Результат

Число=0

Результат

Число=2.5657


Примеры форматного вывода в стиле
C

#include <stdio.h>

#include <conio.h>

void main()

{

 int a,b;

 float x;

 char c,d;

 a=010;     b=0xA;     c='a';    d='\n';    x=10.1234;

 printf("%d\n",a); //печать восьмеричного числа в десятичном формате

 printf("%o\n",a); //печать восьмеричного числа в восьмеричном формате

 printf("%d\n",b); //печать шестнадцатеричного числа в десятичном формате

 printf("%X\n",b); //печать шестнадцатеричного числа в шестнадцатеричном формате

 printf("%c",c);   // печать символа, курсор остается на этой же строке

 printf("%c",d); //печать управляющего символа перевода курсора на другую строку

 printf("%5c\n",c);// печать символа, впереди 4 символа пробела

 printf("%f\n",x);//печать действительного числа

 printf("%10.2f\n",x);//печать действительного числа c заданным общим

                                  //числом знаков и числом знаков после десятичной точки

 printf("%e\n",x);//печать действительного числа в научном формате

 printf("%20e\n",x);//печать действительного числа в научном формате

          // в отведенном формате 20 символов

 getch();  

}


Пример 2 Окрашенный ввод-вывод в стиле С

#pragma hdrstop

#include <conio.h> //библиотека содержит прототипы функций clrscr,

                               / / getch, textcolor, textbackground, cscanf, cputs

#include <math.h>// библиотека содержит математические функции и                       

                               //константы

//---------------------------------------------------------------------------

#pragma argsused

int main(int argc, char* argv[])//заголовок основной функции 

{

 float x,y;

  textbackground(11);

  clrscr();

  textcolor(7);

  cputs("Input x:");

  cscanf("%f",&x);

  cputs("\n\r");

  y=M_PI*x;

  textbackground(6);

  textcolor(4);

  cputs("      X      |     F(x)      |\n\r");

  cprintf("%10.2f  %10.2f\n\r",x , y);// выравнивание по правому краю

  cprintf("%-10.2f  %-10.2f\n\r",x , y);//выравнивание по левому краю

  cprintf(“Press <ENTER>”);

  getch();

  getch();

  return 0;

}


Некоторые математические константы из библиотеки
math.h

Математическая константа

Константа в C/C++

Значение

Е

M_E

2.71828182845904523536

M_PI

3.14159265358979323846

/2

M_PI_2

1.57079632679489661923

/4

M_PI_4

0.785398163397448309616

1/

M_1_PI

0.318309886183790671538

2/

M_2_PI

0.636619772367581343076

M_SQRT2

1.41421356237309504880

0.5

M_SQRT_2    

0.707106781186547524401


Часто употребляемые математические функции из библиотеки
math.h

Функция

Значение

abs(x)

Абсолютное значение x

sqrt(x)

Квадратный корень

exp(x)

Экспонента x

sin()

Синус выраженного в радианах угла

cos()

Коcинус выраженного в радианах угла

tan()

Тангенс выраженного в радианах угла

asin(x)

Угол (в радианах), синус которого равен x

acos(x)

Угол (в радианах), косинус которого равен x

atan(x)

Угол (в радианах), тангенс которого равен x

Организация  случайного числа (библиотека stdlib.h)

Функция

Значение

random(n)

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

rand()

Случайное число  от 0 до RAND_MAX=32767

srand(time(NULL))

Для генерации различной последовательности случайных чисел. В качестве параметра передается временная  метка, которую получют при помощи функции time() из библиотеки <time.h>

Пример

#include <iostream.h>

#include <stdlib.h>

#include <time.h>

#include <conio.h>

int main()

{ srand(time(NULL));

 for (int i=0;i<10;i++)cout<<rand()<<”\n”;

 getch();

 return 0;

}




1. Торговая марка Жокей приглашает Вас принять участие в дегустации растворимого кофе Жокей Триумф ' Натур
2. первых земля по са 194 мой своей природе является таким объектом обложения который практически невозмож
3. . PF флаг четности
4. Реферат по дисциплине Менеджмент Формальное и неформальное управление Выполнил ст
5. СИСТЕМА КОМПЛЕКСНОЙ ПОДДЕРЖКИ СОЦИАЛЬНО АКТИВНОЙ ДЕЯТЕЛЬНОСТИ УЧРЕЖДЕНИЯ ОБЩЕГО СРЕДНЕГО ОБРАЗОВАНИЯ
6. У нас друзья по всей России Республика Калмыкия
7. вспомогательная работа- аспирант О
8. логического и творческого в мышлении свободы и необходимости соотношения мышления чувств и воли нравстве
9. Тема Деревья поздней осенью Цель- Учить детей получать коричневый цвет путем смешивания кранного и зел
10. правовая структура 3 Общая характеристика товара 7
11. Хозяйственно-биологические особенности свиней
12. тематике Класс- 2
13. 6недель Длинна эмбриона 45мм-по узи видно сердце закрыта нервная трубка- появляются зачатки кишки трахеи и
14. Резервы снижения себестоимости на примере ОАО Иркутскмебель
15. реферат дисертації на здобуття наукового ступеня кандидата медичних наук Київ 2002 Дисертаці
16. ТЕМА N 1 СОЦИАЛЬНАЯ ДИАГНОСТИКА И ЕЁ МЕСТО В СИСТЕМЕСОЦИОЛОГИЧЕСКОГО ЗНАНИЯ И СОЦИАЛЬНОГО УПРАВЛЕНИЯ П
17. на тему- Студента ки фам
18. тема Многоформная экссудативная эритема erythem exudtivum multiforme наблюдается в двух основных формах идиоп.html
19.  В стенке мочевого пузыря 4 оболочки- слизистая 12 подслизистая основа 3 мышечная 4 и нар
20. Виды диктантов, методика их проведения