2. Место языков программирования в предметной области «Информатика»


Название2. Место языков программирования в предметной области «Информатика»
страница5/8
Дата публикации06.05.2013
Размер0.82 Mb.
ТипДокументы
userdocs.ru > Информатика > Документы
1   2   3   4   5   6   7   8




33.Особенности использования некоторых типов данных

Переменные имеют максимально допустимое значение. Что произойдет при превышении этого предела? Когда беззнаковое целое достигает своего максимального значения, то при очередном добавлении оно сбрасывается в ноль и отсчет начинается сначала.

Пример. Поместим слишком большое число в переменную типа unsigned short.

#include

int main( )

{

using std::cout;

using std::endl;

unsigned short int smallNumb;

smallNumb=65535; // максимально 65 535

cout<<"Значение smallNumb:"<
//значение переменной должно стать 65 536

smallNumb++;

//переменная сбрасывается в 0

cout<<" Значение smallNumb:"<
//переманная увеличивается на 1 но уже с 0

smallNumb++;

cout<<" Значение smallNumb:"<
return 0;

}
Результат:

Значение smallNumb: 65 535

Значение smallNumb:0

Значение smallNumb:1

Половина диапазона значений знаковых переменных отрицательные числа.

^ 34.Операторы С++. Инкремент и декремент.

Инкремент и декремент. Если оператор «+ =» применить в инструкции увеличения переменной на 1 (инкремент) или уменьшения переменной на 1 (декремент), что в программах встречается очень часто, то можно записать вместо выражения i + = 1выражение i ++ , а вместо выражения i - = – i --.

Операторы инкремента и декремента существуют в двух вариантах: префиксном и постфиксном. Префиксный вариант записывается перед именем переменной (+=sum), а оператор увеличения значения вычисляется до присвоения. Постфиксный записывается после имени переменной (sum +=), оператор выполняется после присвоения.

Другими словами смысл префиксного оператора: изменить значение, а затем присвоить его. Смысл постфиксного: присвоить значение, а затем изменить его оригинал.

^ Объединение оператора присвоения и арифметических операторов. Любая инструкция типа Sum = Sum + I, смысл которой состоит в увеличении переменной Sum на величину i, и присвоении результата переменной Sum, может быть записана:

Sum + = i

Оператор присвоения с суммой («+ =») добавляет r-значение к l-значению, а затем присваивает результат l-значению. Если бы до начала выполнения выражения значение переменной Sum было равно 21, а i рано 1, то результат оказался бы равным 22.

Все арифметические операторы позволяют использовать такую же запись:

x = x * i  x * = i

x = x / i  x / = i

x = x % i  x % = i


^ 35. С++: базовые конструкции структурного программирования

Оператор if позволяет проверить нужное условие и в зависимости от результата выполнить тот или иной участок кода.

^ Первая форма оператора If

if (выражение)

оператор;

следующий оператор;

Выражение в круглых скобках является условием и содержит, как правило, операторы отношения. Если это выражение возвращает false, то следующий за выражением в скобках оператор пропускается (игнорируется) и выполняется следующий оператор. Если же оно возвращает true, то оператор выполняется, а за ним выполняется следующий оператор.

Пример.

#include

int main( ) {

using namespace std;

int a,b;

cout<<"Enter meaning variable a:";

cin>>a;

cout<<"Enter meaning variable b:";

cin>>b;

if (a>b)

a=a+b;

cout<<"Variable a is: "<
cout<<"Variable b is: "<
return 0; }

Здесь вводимые значения переменных a и b определяют возвращаемое выражением значение.

Вторая форма оператора If

Довольно часто в программах требуется, чтобы при выполнении

^ 36. Операторы цикла С++.

Оператор цикла While

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

Синтаксис оператора цикла с предусловием следующий:

while (выражение условия)

{

операторы тела цикла;

}

Выражение условия – это любое выражения языка С++ , а оператор – любой допустимый оператор или блок операторов. Если выражение истинно – возвращает значение 1, выполняется тело цикла (блок операторов), после чего выражение условия проверяется снова. Так будет продолжаться до тех пор, пока выражение не станет ложным (0); тогда цикл while завершится, а выполнение программы продолжится со следующей строки.

Таким образом, в цикле с предусловием сначала выполняется проверка условия, а затем, в зависимости от результата проверки, выполняется или нет тело цикла.
^ Оператор цикла do…while

Цикл с постусловием является противоположностью цикла с предусловием. Возможен вариант, когда тело цикла while вовсе не будет выполнено. Оператор цикла while проверяет выражение условия цикла до того, как приступит к выполнению операторов тела цикла, и если условие ложно с самого начала, то тело цикла будет пропущено.





^ 37. Операторы перехода, структура множественного выбора С++.

В языке С определены четыре оператора перехода: return, goto, break и continue. Операторы return и goto можно использовать в любом месте внутри функции. Операторы break и continue можно использовать в любом из операторов цикла. Как указывалось ранее в этой главе,break можно также использовать в операторе switch.

^ Оператор return

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

Кроме goto, в языке С есть другие операторы управления (например break, continue), поэтому необходимости в применении goto практически нет. В результате чрезмерного использования операторов goto программа плохо читается. Для оператора goto всегда необходима метка. Метка — это идентификатор с последующим двоеточием. Метка должна находится в той же функции, что и goto, переход в другую функцию невозможен.

Оператор break применяется в двух случаях. Во-первых, в операторе switch с его помощью прерывается выполнение последовательностиcase 


^ 38.Функция как структурная единица построения программы на С++. Прототип функции, определение функции.

Главной структурной единицей программы на языке С++, является программный модуль, именуемый в С++ функцией. Как и в любом другом языке, эта основная конструкция устроена так:

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

  • Функция имеет тело, состоящее из команд языка, выполнение которых производится так, как если бы данная функция была отдельной независимой программой.

  • Переменные, определяемые в теле функции, это локальные переменные - то есть такие, значения которых, доступны только внутри данной функции.

  • Функция имеет доступ к глобальным переменным.

  • Функция может возвращать значения в точку программы, в которой был осуществлён вызов функции.


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


^ 39.Перегрузка функций С++.

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

Язык С++ позволяет создать несколько разных функций с одинаковым именем (функции-тезки), при этом функции отличаются:

  • либо типом;

  • либо числом своих аргументов;

  • либо типом и числом аргументов.

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

Существует условие, которому обязаны удовлетворять функции-тезки – функции должны отличаться друг от друга списком параметров, а именно:

  • типом или количеством параметров;

  • тем и другим одновременно.




^ 40.С++: значение параметров функций, используемые по умолчанию. Примеры.

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

Из этого правила существует одно исключение, которое вступает в силу, если в объявлении функции для параметра объявляется значение по умолчанию. Значение по умолчанию – это значение, которое используется в том случае, если при вызове функции для параметра не установлено значение.

Рассмотрим пример объявления функции:

long myFunc (int x = 21);

Запись можно понимать так: функция myFunc2 возвращает значение типа long и принимает целочисленный параметр, но если при ее вызове аргумент не будет представлен, компилятор использует вместо него 21.

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

long myFunc (int param1, int param2, int param3);

Параметру param2 может быть назначение значение по умолчанию только в том случае, если значение по умолчанию назначено и параметру param3. Параметру param1– когда установлены значения по умолчанию и param2 и param3.




^

 41.Структуры С++

В реальных задачах информация, которую требуется обрабатывать, может иметь достаточно сложную структуру. Для ее адекватного представления используются типы данных, построенные на основе простых типов данных, массивов и указателей. Язык С++ позволяет программисту определять свои типы данных и правила работы с ними. Структура – это определяемый пользователем тип данных; объявление структуры служит для того, чтобы определить свойства создаваемого типа данных. После того как тип определен, можно создавать переменные этого типа. В отличие от массива, все элементы которого однотипны, структура может содержать элементы различных типов, т.о., структура – набор элементов произвольных типов. Элементы структуры называются полями структуры и могут иметь любой тип, кроме типа этой же структуры.

^

В языке С++ структура является видом класса и обладает всеми его свойствами Структуры определяются:

struct [имя типа] {тип_1 элемент_1;тип_2 элемент_2;…}

[список описателей]; Т.о. возможно следующее объявление структуры:

^

#include

void main()

{struct address

{char name[10];

char street[30];

char town[10]; long number;}

my={"Petrov", "Green Street","Moscow",33};}

Такая запись определяет новый тип address, НО вместе с тем и инициализирует ее поля (значения ее элементов перечисляются в фигурных скобках в порядке их описания).




^

42 Массивы в С++


Определение массива Массив – это упорядоченная последовательность переменных одного типа. Каждому элементу массива отводится одна ячейка памяти. Элементы одного массива занимают последовательно расположенные ячейки памяти. Все элементы имеют одно имя – имя массива и отличаются индексами – порядковыми номерами в массиве. Количество элементов в массиве называется его размером. Чтобы отвести в памяти нужное количество ячеек для размещения массива, надо заранее знать его размер. Резервирование памяти для массива выполняется на этапе компиляции программы. Определение массива состоит из спецификатора типа, имени массива и размера в квадратных скобках: тип_элемента имя_массива [размер] Например.
^

int myArray [100];

Инициализация массива Небольшие массивы переменных встроенных типов (например, int или char) можно инициализировать при объявлении массива:


тип_элемента имя_массива [размер] = { список_значений}

здесь список_значений – перечисление через запятую значений элементов массива Например.

int a[10]={1,2,3,4,5,6,7,8,9,10} ; //массив из 10 целочисленных значений или int b[ ]={1,2,3,4,5,6,7,8,9,10} ;

^ Использование датчика случайных чисел для формирования массива В С++ есть функция int rand() возвращающая псевдослучайное число из диапазона 0..RAND_MAX=32767, описание функции находится в файле .В общем случае псевдослучайное n определяется по формуле: n = a + rand ( ) % b

, где a – величина сдвига (равна первому числу из требуемого диапазона последовательности целых чисел), b – масштабирующий коэффициент (равен ширине требуемого диапазона).


43. Указатель — это переменная, содержащая адрес некоторого элемента данных (переменной, константы, функции, структуры). В языке C указатели тесно связаны с обработкой массивов и строк, которые будут рассмотрены в следующем разделе.

Для объявления переменной как указателя используется оператор *:

Для присвоения адреса некоторой переменной указателю используется опера­тор &, например:

char *p;                       // объявляем указатель (способен содержать адрес хранения любого символа);

char c = 'А';     // объявляем символьную переменную с;

р = &c;                       // теперь p содержит адрес хранения символа c. 

Для того чтобы извлечь значение переменной, на которую указывает указа­тель, используется оператор разыменования *.

char *p;

char b; char c = 'А';

р = &c;.

b = *р;            // теперь b равняется не адресу хранения переменной c, а значению переменной c, то есть 'А'. 

Аналогичным образом, этот оператор можно использовать и для присвоения некоторого значения переменной, на которую указывает указатель:

char *p;

char b, char c = 'А';

р = &b;           // теперь p содержит адрес хранения ещё не инициализированной переменной b;

*р = b;            // инициализируем переменную b значением 'А'.


44. . Указатель — это переменная, содержащая адрес некоторого элемента данных (переменной, константы, функции, структуры). В языке C указатели тесно связаны с обработкой массивов и строк, которые будут рассмотрены в следующем разделе.

Для объявления переменной как указателя используется оператор *:

Выделение памяти осуществляется с помощью оператора new и имеет вид: тип_данных *имя_указателя = new тип_данных;, например int *a = new int;

^ Инициализация значения, находящегося по адресу указателя выполняется схожим образом, только в конце ставятся круглые скобки с нужным значением: тип данных *имя_указателя = new тип_данных(значение). В нашем примере это int *b = new int(5).

^ Оператор взятия адреса используется для уже созданного объекта с целью получить его адрес (то есть адрес области памяти, где хранятся значения), а ссылка это только задание альтернативного имени объекта (с точки зрения программиста, а не реализации). Например:

int a; //переменная типа int размещена по адресу 0xbfd86d6c с именем "a"

int b = 3;

/* создан указатель с именем "p" по адресу 0xbf971c4c, значение этого указателя *

* адрес объекта с именем "a" - 0xbfd86d6c (это значение можно будет менять) */

int *p = &a;

p = &b; //присваиваем указателю новое значение соответствующее адресу переменной "b"




1   2   3   4   5   6   7   8

Похожие:

2. Место языков программирования в предметной области «Информатика» iconПонятие программы и программирования. Свойства программ. Назначение...
Системы счисления. Сущность перевода чисел из одной системы счисления в другую: примеры
2. Место языков программирования в предметной области «Информатика» iconТема 1: Эволюция языков программирования
Процедурное программирование, Объектно-ориентированное программирование (ооп), Декларативные языки программирования
2. Место языков программирования в предметной области «Информатика» icon2. Место проведения производственной практики
«Прикладная информатика в экономике», «Прикладная информатика в менеджменте», «Автоматизированные системы обработки информации и...
2. Место языков программирования в предметной области «Информатика» iconСписок вопросов по дисциплине информатика
Место информатики в современном научном знании. Предмет и структура информатики. Цели и задачи курса "Информатика"
2. Место языков программирования в предметной области «Информатика» iconПринципы объектно-ориентированного программирования: инкапсуляция,...
Принципы объектно-ориентированного программирования: инкапсуляция, наследование, полиморфизм реализованные в языках C++ и С#
2. Место языков программирования в предметной области «Информатика» iconWeb-программист Вам предстоит
Разработка программных продуктов с использованием языков программирования: php, JavaScript
2. Место языков программирования в предметной области «Информатика» icon«6 этап кубка Федерации Триатлона Ленинградской области». Место проведения
Место проведения: п. Крестцы, Новгородской области, лыжная трасса «Козлово болото»
2. Место языков программирования в предметной области «Информатика» iconУчебно-методическое пособие
При изучении дисциплины Информатика студенты-заочники выполняют контрольную работу, целью которой является приобретение навыков алгоритмизации...
2. Место языков программирования в предметной области «Информатика» iconКонтрольная работа по курсу “Методы программирования и информатика”...
Дана вещественная матрица а размерности (). Составить программу, реализующую указанные действия. Формат вывода
2. Место языков программирования в предметной области «Информатика» iconВопросы по дисциплине: " Разработка и эксплуатация информационных систем "
Описание предметной области. Назначение и область применения. Технические характеристики. Постановка задачи
Вы можете разместить ссылку на наш сайт:
Школьные материалы


При копировании материала укажите ссылку © 2015
контакты
userdocs.ru
Главная страница