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

Вопрос №39 Массивы данных в С++. Массив как параметр функции




Вопрос №39 Массивы данных в С++. Массив как параметр функции

Int fibon[9] = { 0, 1, 1, 2, 3, 5, 8, 13, 21 };

Здесьfibon – это имя массива. Элементы массива имеют тип int, размер (длина) массива равна 9. Значение первого элемента – 0, последнего – 21. Для работы с массивом мы индексируем (нумеруем) его элементы, а доступ к ним осуществляется с помощью операции взятия индекса. Казалось бы, для обращения к первому элементу массива естественно написать:

intfibon[9] = { 0, 1, 1, 2, 3, 5, 8, 13, 21 };

индексация массивов в C++ начинается с 0, поэтому элемент с индексом 1 на самом деле является вторым элементом массива, а индекс первого равен 0. Таким образом, чтобы обратиться к последнему элементу массива, мы должны вычесть единицу из размера массива:

fibon[0]; // первый элементfibon[1]; // второй элемент... fibon[8]; // последний элементfibon[9]; //... ошибка

Девять элементов массива fibon имеют индексы от 0 до 8.

Передача параметров в дельфи:

scal/Delphi
1:
2:
TypeTa=array ofsomething;
Vara: Ta;

Procedure Proc(a: Ta); - внутри процедуры создаётся копия массива, внутри процедуры работа осуществляется только с копией данных
Procedure Proc(var a: Ta); - внутри процедуры код работает именно с переменной а и её содержимым
Procedure Proc(const a: Ta); - внутри процедуры запрещено изменять данные переменной а
Procedure Proc(out a: Ta); - при входе в процедуру массив рассматривается как пустой, но после выполнения процедуры можно получить значения

Вопрос №40 Форматный и потоковый ввод/вывод данных в С++.

Потоковый ввод.

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

cin > > d;........... cin > > x1 > > x2 > > x3;

Первая строка соответствует запросу на ввод значения единственной переменной d. Следующая строка программы представляет запрос на ввод трех числовых значений, первое из которых будет присвоено переменной x1, второе значение предназначается для переменной x2, третье значение - для переменной x3. В ответ на запрос программы пользователь должен набрать на клавиатуре затребованные числа, разделяя их, по крайней мере, одним пробелом. Набор строки завершается нажатием клавиши Enter. Количество числовых значений, набираемых пользователем в пределах строки, может оказаться как меньше, так и больше, чем требуется программе. В первом случае продолжение программы задержится до тех пор, пока пользователь не введет дополнительные строки с недостающими значениями. Если пользователь наберет слишком много значений в вводимой строке, то лишние числовые данные сохранятся в буфере ввода и будут переданы программе при выполнении следующего оператора cin.

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

Для обеспечения потокового ввода к программе следует подключить заголовочный файл iostream. h:

#include < iostream. h> int main(){ int i; float f; double d;.......... cin > > i > > f > > d;

Форматный ввод.

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

#include < stdio. h>

int main()

{ int i;

float f;

double d;

..........

scanf(" %d %f %lf", & i, & f, & d);

Строка вводимых данных поступает со стандартного устройства ввода ( stdin ), которым по умолчанию считается клавиатура. Завершение набора строки ввода - нажатие клавиши Enter.

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

В приведенном примере переменной i (в списке ввода указан ее адрес - & i ), объявленной с помощью спецификатора типа int, соответствует форматный указатель %d. Это означает, что первым числовым значением в строке ввода может быть только целое десятичное число со знаком ( d - от decimal, десятичный). Вещественной переменной f типа float в форматной строке соответствует указатель %f. Это означает, что второе числовое значение в строке ввода должно принадлежать диапазону, предусмотренному для коротких вещественных данных. Для переменной d типа double использован форматный указатель %lf ( l - от long ).

Поделиться:





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



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