
- •Вопрос 1. История языков программирования от машинного кода до современных языков структурного программирования.
- •Вопрос 3. Понятие о синтаксисе языка программирования. Основные типы данных языка с.
- •Вопрос 14. Цикл с выходом из середины. Привести блок схемы и примеры реализации.
- •Вопрос 15. Итерационные алгоритмы. Привести примеры реализации итерационных алгоритмов в задачах вычисления суммы бесконечного ряда с заданной точностью (нет ничего)
- •Вопрос 21. Область видимости и "время жизни" переменных. Использование статических переменных в функции. Привести примеры.
- •Void Swap ( int &a, int &b ) // ссылки в заголовке
- •2) Массив можно заполнить, вводя элементы массива с клавиатуры:
- •Вопрос 26. Что такое вложенные циклы? Проанализировать работу программы, содержащей вложенные циклы.
- •Int MyArray1 [ 10 ]; // Одномерный массив размерности 10
- •Int MyArray2 [ 20 ][ 10 ]; // 20 одномерных массивов
- •Int MyArray3 [ 30 ][ 20 ][ 10 ]; // 30 двумерных массивов
- •Вопрос 36. Функции сравнения строк. Проиллюстрировать работу функций на примерах
- •Вопрос 37. Функции преобразования числа в цифровую строку и обратно. Проиллюстрировать работу функций на примерах.
- •Int value; //Запись &value означает «адрес объекта value».
- •1) С использованием имени переменной.
- •2) С использованием адреса переменной.
- •Int *ap [15]; // Массив из 15 указателей на int
- •Вопрос 40. Передача массивов в качестве параметров в функцию. Привести пример передачи массива вещественных чисел в функцию, вычисляющую сумму его элементов.
- •Вопрос 41. Статическое и динамическое выделение памяти. Операторы new и delete.
- •Вопрос 44. Привести пример реализации алгоритма обработки и преобразования матриц, используя динамическое выделение памяти и технику работы с указателями.
- •Вопрос 45. Понятие структуры. Описание, инициализация структур. Доступ к полям структур. Примеры использования структур.
- •Вопрос 46. Массивы структур. Привести пример обработки массива структур.
- •Вопрос 47. Передача структур в качестве параметров в функцию. Привести пример функции, обрабатывающей структуру.
- •Передача целых структур функциям
- •Вопрос 48. Указатели на структуру. Использование структур с функциями. Передача структуры в функцию по значению, по ссылке и с использованием техники работы с указателями
- •Объявление указателя на структуру
- •Использование указателей на структуры
Вопрос 36. Функции сравнения строк. Проиллюстрировать работу функций на примерах
char *s1, *s2;
int strcmp (s1, s2);
сравнивает строку s1 со строкой s2 и возвращает результат типа int: 0, если строки одинаковые, 1, если 1 -я больше 2-й и -1, если меньше. char *s1, *s2; int num;
int strncmp (s1, s2, num) ; сравнивает первые num символов строки s1 с первыми num символами строки s2. Эта функция начинает сравнивать первый символ каждой строки. Если они равны, strncmp продолжает сравнивать следующие пары символов, пока не будут найдены различные символы или пока не будет достигнут конец строки. Возвращает результат типа int:
0, если строки одинаковые, 1, если 1 -я больше 2-й и -1, если меньше.
Пример использования функции
strcmp
#include "stdafx.h"
#include <iostream>
#include <cstring>
// для strncmp()
using namespace std;
int main ()
{
char droids[ ][10] = { "R2D2" , "C3PO" , "R2A6" }; //имеющиеся дроиды
cout << "Ищете R2-дроида астромеханика...\n";
for (int counter = 0 ; counter <= 2 ; counter++) // проход по дроидам
if ( strncmp( droids[counter], "R2**", 2 ) == 0 ) //сравниваем первые два
// символа строк
cout << "дроид [+_+] >> " << droids[counter] << "\n";
return 0;
}
Сравнение строк Пример 2
#include "stdafx.h"
#include <iostream>
#include <cstring>
using namespace std;
int main ()
{ char s1[ ] = "Строка";
char s2[ ] = "Строочка";
cout << " s1 == s1 -> " << setw(2) << strcmp(s1,s1) << endl;
// строка s1 = s1
cout << " s1 < s2 -> " << setw(2) << strcmp(s1,s2) << endl;
// строка s1 < s2
cout << " s2 > s1 -> " << setw(2) << strcmp(s2,s1) << endl;
// строка s2 > s1
system("pause");
return 0;
}
Вопрос 37. Функции преобразования числа в цифровую строку и обратно. Проиллюстрировать работу функций на примерах.
Выполнить преобразование строки в число можно многими способами - выбор конкретного зависит от ваших целей на момент написания кода. Есть штатные способы - ряд библиотечных функций, есть более изощренные, есть совсем уж извращенные годные разве что для экзерсисов в области программирования. Начну с самых простых.
Первый, и, наверное, самый распространенный, но далеко не самый лучший - использование штатных библиотечных функций atoi, atof, atol. Эти функции входит в стандартную библиотеку языка и присутствует в любом компиляторе. Их объявления выглядит так:
int atoi(const char* str)
long atol(const char* str)
double atof(const char* str)
Пример:
#include <string>
#include <sstream>
template <typename T>
std::string toString(T val)
{
std::ostringstream oss;
oss<< val;
return oss.str();
}
template<typename T>
T fromString(const std::string& s)
{
std::istringstream iss(s);
T res;
iss >> res;
return res;
}
// Пример использования
std::string str;
int iVal;
float fVal;
str = toString(iVal);
str = tiString(fVal);
iVal = fromString<int>(str);
fVal = fromString<float>(str);
Вопрос 38. Понятие указателя. Способы инициализации указателей. Операции с указателями. Привести примеры работы с указателями на языке С/C++.
Указатель является объектом (переменной), хранящим адрес другого объекта.
Для обращения к объекту, на который указывает указатель (адрес которого хранится в указателе), используется оператор * (звёздочка), называемый оператором разыменования или косвенным обращением.
Для получения адреса объекта используется унарный оператор &.