Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование ответы.docx
Скачиваний:
59
Добавлен:
30.01.2018
Размер:
407.05 Кб
Скачать

1 Способ

Первыми инициализируются элементы с самыми маленькими индексами:

int MyArray[3][3][3]={ 0,1,2,3,4.5.6,7,8,9,10};

Начальные значения получают следующие элементы трехмерного массива:

MyArray[0][0][0] = 0;

MyArray[0][0][1] = 1;

MyArray[0][0][2] = 2;

MyArray[0][1][0] = 3;

MyArray[0][1][1] = 4;

MyArray[0][1][2] = 5;

MyArray[0][2][0] = 6;

MyArray[0][2][1] = 7 ;

MyArray[0][2][2] = 8;

MyArray[1][0][0] = 9 ;

MyArray[1][0][1] = 10 ;

2 Способ

int MyArray[3][3][3]={

{{0,1}},

{{100},{200,210},{300}},

{{1000},{2000,2100},{3000,3100,3200}}

};

В результате выполнения этого оператора будут инициализированы след. элементы массива MyArray:

MyArray[0][0][0] = 0;

MyArray[0][0][1] = 1;

MyArray[1][0][0] = 100 ;

MyArray[1][1][0] = 200;

MyArray[1][1][1] = 210;

MyArray[1][2][0] = 300 ;

MyArray[2][0][0] = 1000;

MyArray[2][1][0] = 2000;

MyArray[2][1][1] = 2100;

MyArray[2][2][0] = 3000;

MyArray[2][2][1] = 3100;

MyArray[2][2][2] = 3200;

28.Символы. Стандартные кодовые таблицы символов. Привести примеры обработки символов с использованием библиотечных функций на языке С/C++

Символ – элементарная единица, некоторый набор которых несет определенный смысл. В языке программирования С++ предусмотрено использование символьных констант. Символьная константа – это целочисленное значение (типа int) представленное в виде символа, заключённого в одинарные кавычки, например 'a'. В таблице ASCII представлены символы и их целочисленные значения.

ASCII ( от англ. American Standard Code for Information Interchange) — американский стандартный код для обмена информацией. ASCII представлена в виде таблицы печатных символов и некоторых специальных управляющих символов, каждому символу соответствует уникальный код в диапазоне от [0;255]. ASCII представляет собой кодировку для представления десятичных цифр, латиницы и кириллицы, знаков препинания и управляющих символов

Функция ввода символов

char getchar() - которая возвращает значение символа, введенного с клавиатуры.

Функция вывода символов

char putchar(char) - которая возвращает значение выводимого символа и выводит на экран символ, переданный в качестве аргумента.

#include <cstdio>

#include <iostream>

int main ()

{ setlocale(LC_ALL,"RUS");

char character;

puts("Введите символ, символ точки - выход('.'):");

do

{

character = getchar(); // считать введённый со стандартногопотока ввода символ

putchar (character); // вывести этот символ

} while (character != '.'); // пока введенный символне точка

return 0;}

29.Символьные строки. Два эквивалентных способа объявления и инициализации строк. Привести примеры обработки строк в С/C++.

Строки в С++ представляются как массивы элементов типа char, заканчивающиеся нуль-терминатором\0.

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

1 способ. Строка при объявлении  может быть инициализирована начальным значением, например, так:

charstring[10] = "abcdefghf"; (Так же можно не указывать размер)

2 способ.

// посимвольная инициализация строки:

char string[10] = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'f', '\0'};

// десятый  символ это  нуль-терминатор.

Пример обработки строк:

#include <iostream>

using namespace std;

int main(int argc, char* argv[])

{

char string[] = "this is string - "; // объявление и инициализация строки

cout << "Enter the string: ";

char in_string[500]; // строковый массив для ввода

gets(in_string); // функция gets() считывает все введённые символы с пробелами до тех пор, пока не будет нажата клавиша Enter

cout << string << in_string << endl; // вывод строкового значения

system("pause");

return 0;

}

30.Библиотечные функции языка С/C++ для работы со строками и символами. Привести примеры обработки строк с использованием библиотечных функций.

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

Функция

Пояснение

strlen(имя_строки)

определяет длину указанной строки, без учёта нуль-символа

Копирование строк

strcpy(s1,s2)

выполняет побайтное копирование символов из строки  s2 в строку s1

strncpy(s1,s2, n)

выполняет побайтное копирование n символов из строки  s2 в строку s1. возвращает значения s1

Сравнение строк

strcmp(s1,s2)

сравнивает строку s1 со строкой s2 и возвращает результат типа int: 0 –если строки эквивалентны, >0 – если s1<s2,  <0  — если s1>s2 С учётом регистра

strncmp(s1,s2,n)

сравнивает n символов строки s1 со строкой s2 и возвращает результат типа int: 0 –если строки эквивалентны, >0 – если s1<s2,  <0  — если s1>s2 С учётом регистра

Функции поиска

strchr(s,c)

поиск первого вхождения символа с в строке sВ случае удачного поиска возвращает указатель на место первого вхождения символа сЕсли символ не найден, то возвращается ноль.

strstr(string1,string2)

Функция ищет первое вхождение подстроки string2 в строке string1. Возвращает указатель на первое вхождение строки string2   в строку string1, или пустой указатель, если строка string2 не является частью строки string1. В данном поиске нуль-символ не  учитывается.

Функции стандартной библиотеки ввода/вывода <stdio>

gets(s)

считывает поток символов со стандартного устройства ввода в строку s до тех пор, пока не будет нажата клавиша ENTER

Пример обработки строк:

//пример использования функции strlen

#include <cstring> // для strlen

#include <iostream>

using namespace std;

int main()

{

setlocale(LC_ALL,"RUS");

char input[256];

cout<<"Введите строку: ";

cin>>input;

cout<< "Строка " << input << " содержит " << strlen(input) << " символов\n";

system("pause");

return 0;

}

31.Алгоритмы копирования строк, реализованные через массивы и стандартные строковые функции языка С/C++.

Пример с strcpy и strncpy

#include <iostream>

#include <cstring>

using namespace std;

int main(int argc, char* argv[])

{

char s2[27] = "HOhoHO"; // инициализация строки s2

char s1[27]; // резервируем строку для функции strcpy()

cout << "strcpy(s1,s2) = " << strcpy(s1,s2) << endl; // содержимое строки s2 скопировалось в строку s1, возвращается указатель на s1

cout << "s1= " << s1 << endl; // вывод содержимого строки s1

char s3[7]; // резервируем строку для следующей функции

cout << strncpy(s3, s2, 3) << endl; // копируем 7 символов из строки s2 в строку s3

system("pause");

return 0;}

  1. Функции поиска одиночного символа и подстроки в строке. Проиллюстрировать работу функций в С/C++ на примерах.

char s[]

char c

char *strchr (s,c)

поиск первого вхождения символа (с) в строке (s) В случаи удачного поиска возвращает указатель на место первого нахождения символа (с) а если не находит то возвращает NULL(пустой указатель)

#include "stdafx.h"

#include <iostream>

#include <cstring>

using namespace std;

int main()

{

char lotr[] = "Властелин к0лец"; // строка в которой будем искать символ 0

setlocale(LC_ALL,"RUS");

cout << "Ищите кольцо всевластия в LOTR!!!\n";

char * ring = strchr(lotr, '0'); // поиск символа 0 в строке lotr

cout << "Моя прелесть находится в "<< (ring - lotr + 1) << " квадрате\n"; // определяем позицию символа

system ("pause");

return 0;

}

char *s1,*s2

char *strstr(s1,s2)

функция ищет в строке s1 подстроку s2 (пр.: Windows) и возвращает на нее указатель или NULL если не найдено

#include "stdafx.h"

#include <iostream>

#include <cstring>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])

{

setlocale(LC_ALL,"RUS");

char str[] = "Эта программа написана в Windows 10";

cout << strstr (str, "Windows") <<endl; // поиск подстроки в строке

system ("pause");

return 0;

}

  1. Функции сравнения строк. Проиллюстрировать работу функций на примерах.

Библиотека <cstring> предлагает пользователю готовые функции, выполняющие сравнение строк.