- •14.Цикл с выходом из середины. Привести блок схемы и примеры реализации.
- •15.Итерационные алгоритмы. Привести примеры реализации итерационных алгоритмов в задачах вычисления суммы бесконечного ряда с заданной точностью.
- •Разновидность функций:
- •Формальные и фактические параметры функции.
- •1 Способ
- •2 Способ
- •Функция ввода символов
- •Функция strcmp(str1, str2).
- •Функция stricmp.
- •Функция strncmp.
- •Функция strnicmp. Сравнивает первые num символов без учета регистра.
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;}
Функции поиска одиночного символа и подстроки в строке. Проиллюстрировать работу функций в С/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;
}
Функции сравнения строк. Проиллюстрировать работу функций на примерах.
Библиотека <cstring> предлагает пользователю готовые функции, выполняющие сравнение строк.