Студопедия

КАТЕГОРИИ:

АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника


Оператор перехода return




Оператор return прекращает выполнение текущей функции и возвращает управление той функции, из которой была вызвана текущая. В общем случае он имеет следующий формат:

return expression;

где return – ключевое слово языка С, а expression – произвольное необязательное выражение.

После прекращения выполнения текущей функции и передачи управления вызвавшей функции, выполнение последней продолжается с оператора, непосредственно следующего за точкой вызова. Кроме этого, при наличии выражения expression его значение передается (возможно, после предварительного преобразования типа) вызвавшей функции. Если тип возвращаемого функцией значения описан как void, выражение в операторе return должно отсутствовать. Если тип возвращаемого функцией значения отличен от void, а оператор return отсутствует, то возвращаемое текущей функцией значение считается неопределенным.

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

 

29. Массивы: назначение, описание, свойства

Массив – одна из наиболее простых и часто используемых структур данных. Под массивом понимают набор данных одного и того же типа, собранных под одним именем. Каждый элемент массива определяется именем массива и порядковым номером элемента, который называется индексом. Индекс в языке С всегда целое число Основная форма объявления массива размерности N такова: тип <имя массива>[размер1][размер2]…[размерN]Чаще всего используются одномерные массивы: тип <имя массива>[размер];Основными характеристиками массива являются: имя, размерность, тип его элементов.В языке С под массив всегда выделяется непрерывное место в памяти. В языке С не проверяется выход значения индекса за пределы массива. Поэтому, при написании и отладке программ с использованием массивов, этот момент необходимо учитывать.

Массивы используются для представления в программе векторов, матриц, символьных строк, образа экрана ПК и другой однородной информации. Для описания массива в языке С используется унарная операция [ ],которая определяет массив из данных какого-либо типа.

Количество индексов, стоящих в описании массива, определяет число измерений массива или размерность. Различают одномерные, двухмерные, трёхмерные и т.д. массивы.

30. Одномерные массивы: характеристики массива, инициализация:Чаще всего используются одномерные массивы: тип <имя массива>[размер];Тип – базовый тип элементов массива, размер – количество элементов одномерного массива. В языке С индекс всегда начинается с нуля. Когда речь идет о первом элементе массива, то имеем в виду элемент с индексом 0. Если объявляется массив int a[100]; , то это значит, что массив содержит 100 элементов от a[0] до a[99]. Для одномерного массива легко определить, сколько байт в памяти будет занимать этот массив:Количество байт=<размер базового типа>*<количество элементов> . 32. Двумерные, многомерные массивы.Язык С допускает многомерные массивы, простейшими из которых являются двумерные массивы. Можно сказать, что двумерный массив – это массив одномерных массивов.Двумерный массив int a[3][4] можно представить в виде таблице Таблица 4.1 Двумерный массив int a[3][4] a[0][0] a[0][1] a[0][2] a[0][3] a[1][0] a[1][1] a[1][2] a[1][3] a[2][0] a[2][1] a[2][2] a[2][3]Здесь первый индекс – номер строки, второй номер столбца. Количество байт памяти, необходимое для хранения двумерного массива в памяти определяется как <размер типа данных>*<число строк>*<число столбцов>.В памяти компьютера двумерный массив располагается по строкам. Память для массивов, которые определены как глобальные, отводится в процессе компиляции и сохраняется на все время выполнения программы.Часто двумерные массивы используются для работы с числовыми и с символьными таблицами(массивы строк). Рассмотрим пример: # include < stdio.h > # include < string.h > /* Пример 21 */ main() { char text[5][20]; strcpy(text[0],”Turbo Basic”); strcpy(text[1],”Turbo Pascal”); strcpy(text[2],”Borland C++”); strcpy(text[3],”Turbo Prolog”); strcpy(text[4],”Turbo Fortran”); }В данной прграмме заполняется массив text[][], причем, в функции strcpy при заполнении массива, используется только первый индекс. 33. Объявление, инициализация массивов.Инициализация массивовПри программировании бывает важным уметь инициализировать массивы, т. е. присваивать элементам массива некоторые начальные значения. Самый простой способ инициализации – указать список инициализаторов в фигурных скобках при объявлении массива, например: float ff[5]={1.4, 2.5, 3.6, 12.8, 0.9}; int z[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};Многомерные массивы можно инициализировать, рассматривая их как массивы массивов: char str z[3][4]={ {1,2,3,4},{5,6,7,8},{9,10,11,12}};Количество инициализаторов может быть меньше, чем количество элементов массива. В этом случае оставшиеся элементы массива считаются неопределенными.Символьные массивы могут инициализироваться как обычный массив: char str[12]={‘a’,’b’,’c’,’d’};а могут – как строка символов: char str[12]=“abcd”;Отличие состоит в том, что во втором случае будет добавлен автоматически нулевой байт.Допускается объявление и инициализация массива без явного указания его размера: char str[]=”abcd”;В этом случае компилятор сам определит необходимое количество элементов массива, включая нулевой байт. Таким образом можно объявлять массивы любого типа: int a[]={10, 20, 30, 40, 50}; Но при объявлении многомерных массивов с неизвестным количеством элементов, можно не указывать размер только в самых левых квадратных скобках: int a[][3]={1, 2, 3 5, 6, 7 8, 9, 10};Рассмотрим пример использования массивов на примере задачи сортировки одномерного целочисленного массива по убыванию значений: # include < stdio.h > /* Пример 22 */ main() { int arr[10]={9, 12, 43, 2, 4, 78, 15, 34, 11, 27}; int i,j,tmp; printf(“ Неотсортированный массив: ”); for ( i=0; i<10; i++) printf(“%d “, arr[i]); printf(“\n”); for ( i=0; i<8; i++) for ( j=i+1; j<9; j++) if( arr[i] < arr[j] ) { tmp=arr[i]; arr[i]=arr[j]; arr[j]=tmp; } printf(“ Отсортированный массив: ”); for ( i=0; i<10; i++) printf(“%d “, arr[i]); printf(“\n”);}

34. Обработка двумерных массивов.

Двумерный массив (матрицу) можно объявить так:

тип имя_переменной [n][m];

где n _ к оличество с трок (от 0д о n-1), m _ к оличество с толбцов о(т 0д о m-1).

Например, double m[3][4];

Обращаются к элементу матрицы, указывая последовательно в квадратных скобках соответствующие индексы:

Например, a[1][2] _ элемент матрицы a, находящийся в первой с троке и в тором столбце .

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

описания.

Например,

float a[5]={1.2,(float)3/4, 5./6,6.1,7.8};35. Ввод-вывод массивов.

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

Ввод элементов массиваРеализация алгоритма на С++ ://Первая версия программы ввода элементов массива.#include <stdio.h>#include <math.h>int main(){float x[10];int i,n;printf("\n N=");scanf("%d",&n);printf("\n Введите массив X \n");for(i=0;i<n;i++)scanf("%f",&x[i]);} Блок-схема ввода массива//Вторая версия программы ввода элементов массива.#include <stdio.h>#include <math.h>int main(){float x[10],b;int i,n;printf("\n N=");scanf("%d",&n);printf("\n Введите массив X \n");for(i=0;i<n;i++){scanf("%f",&b);x[i]=b;} }//Третья версия программы ввода элементов массива.float x[10];int i,n;cout<<"\n N=";cin>>n;cout<<"\n Vvedite massiv X \n";for(i=0;i<n;i++)cin>>x[i];Вывод элементов массиваРеализация алгоритма на С++ представлена:При организации вывода элементов массива можно использовать специальные символы \t \n.printf("\n Массив X\n");for(i=0;i<n;i++)printf("%g\t",x[i]);printf("\n");cout<<"\n Massiv X \n";for(i=0;i<n;i++)cout<<x[i]<<"\t"; Блок схема выводы массива.36. Массив как строка символов. 38. Функции работы со строками: scanf, gets, printf, puts.Во многих языках программирования есть специальный тип данных – строка символов (string). В языке С такого типа нет, а работа со строками реализована путем использования одномерных массивов типа char.В языке С символьная строка – это одномерный массив типа char, заканчивающийся нулевым байтом. Для нулевого байта определена специальная символьная константа – ‘\0’. Это необходимо учитывать при описании соответствующего символьного массива. Так, если строка должна содержать N символов, то в описании массива необходимо указать N+1 элемент.Например, описание int str[12], предполагает, что строка содержит 11 символов, а последний байт зарезервирован под нулевой байт.Хотя в языке С нет специального типа строки, язык допускает строковые константы. Строковая константа – это список литер, заключенных в двойные кавычки. Например, “Borland C++”, “Строковая константа”.В конец строковой константы не надо ставить символ ‘\0’. Это сделает сам компилятор.Есть два простых способа ввести строку с клавиатуры. Первый способ – воспользоваться функцией scanf() со спецификатором ввода %s. Надо помнить , что функция scanf() вводит символы до первого пробельного символа. Второй способ – воспользоваться функцией gets(), объявленной в файле stdio.h. Функция gets() позволяет вводить строки, содержащие пробелы. Ввод заканчивается нажатием клавиши Enter. Обе функции автоматически ставят в конце строки нулевой байт. В качестве параметра в этих функциях используется имя массива.Вывод строк производится с помощью функций printf() и puts(). Обе функции выводят содержимое массива до первого нулевого байта. Функция puts() добавляет в конце выводимой строки символ новой строки. В функции printf() переход на новую строку надо предусматривать в строке формата самим.
Поделиться:

Дата добавления: 2015-04-18; просмотров: 116; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.006 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты