
- •210700 Инфокоммуникационные технологии и системы связи
- •220700 Автоматизация технологических процессов и производств
- •230400 Информационные системы и технологии
- •1. Цели и задачи дисциплины
- •2. Место дисциплины в структуре основной образовательной программы
- •3. Требования к уровню освоения содержания дисциплины
- •Для специальности 210700 Инфокоммуникационные технологии и системы связи
- •4. Объем дисциплины и виды учебной работы
- •5. Содержание дисциплины
- •Для специальности 210700 Инфокоммуникационные технологии и системы связи
- •6. Лабораторный практикум
- •7. Библиографический список
- •8. Материально-техническое обеспечение дисциплины
- •9. Опорный конспект
- •1. Основы алгоритмизации
- •1.1 Этапы решения задач на эвм.
- •1.2. Алгоритм. Свойства алгоритмов
- •1.3. Формы представления алгоритмов
- •1.4. Алгоритмическая конструкция ветвления
- •1.5. Алгоритмическая конструкция цикла
- •2.1. Разработка консольного проекта
- •2.3. Комментарий
- •2.4. Организация ввода и вывода информации
- •Вывод данных
- •Ввод данных
- •2.5. Разработка проекта типа Windows Forms Application
- •3. Основные элементы языка
- •3.1. Алфавит
- •3.2. Идентификаторы
- •3.3. Переменные и константы
- •3.4. Символьные типы данных
- •3.5. Данные типа int
- •3.6. Данные с плавающей точкой
- •3.7. Логический тип данных
- •3.8. Операции и выражения
- •Арифметические операции
- •Операции инкремента и декремента
- •Операции отношения и логические операции
- •Оператор присваивания
- •Составные операторы присваивания
- •Оператор условия ? :
- •Операция sizeof
- •4. Программирование разветвляющих и циклических алгоритмов
- •4.1. Общие сведения
- •4.2. Оператор if
- •4.3. Оператор switch
- •4.4. Оператор цикла for
- •4.5. Оператор цикла while
- •4.6. Оператор цикла do while
- •4.7. Применение оператора continue
- •4.8. Оператор goto
- •5. Массивы и строки
- •5.1. Массивы
- •5.2. Строки
- •6. Функции
- •6.1. Общие сведения
- •6.2. Описание функции и ее тип
- •6.3. Вызов функции
- •6.4. Область действия переменной
- •6.5. Классы памяти
- •Глоссарий
- •10. Задания на лабораторные работы и методические указания к их выполнению
- •11. Задания на контрольную работу и методические указания к их выполнению
- •Оглавление
5.2. Строки
Строка является упорядоченной коллекцией символов Юникода, используемой для представления текста. Для работы со строками в CLR-проекте используется класс String.
String ^str = “Работа со строками в С++”; // здесь объявлена ссылочная
// переменная str и ей присвоен текст
Символ ‘^’ – это признак ссылки.
Пример 5_4. Использование строк.
#include "stdafx.h"
using namespace System;
int main()
{
String ^st1="ИЗУЧАЕМ ";
String ^st2, ^st3;
st2 = "работу со строками в C++";
st3 = st1 + st2;
Console::WriteLine("{0}", st3);
st2 = st3;
Console::WriteLine("В слове {0} 3-я буква \'{1}\'", st1, st1[2]);
Console::ReadLine();
return 0;
}
Результат работы со строками:
ИЗУЧАЕМ работу со строка в C++
В слове ИЗУЧАЕМ 3-я буква 'У'
Функции работы со строками
Compare(String ^s1, String ^s2); - сравнивает s1 и s2 и возвращает целое число, которое показывает их относительное положение в порядке сортировки:
меньше нуля - значение параметра s1 меньше значения параметра s2.
0 - значения параметров s1 и s2 равны.
больше нуля - значение strA больше значения strB.
Пример 5_5. Сравнение строк
#include "stdafx.h"
using namespace System;
int main()
{
String ^s1="ABC", ^s2="ADC";
int k;
k=String::Compare(s1,s2);
Console::WriteLine("k="+k);
Console::ReadLine();
return 0;
}
Результат работы со строками:
k=-1
IndexOf(String ^s1, int); - Возвращает индекс с отсчетом от нуля первого вхождения значения указанной строки s1 в данном экземпляре. Поиск начинается с указанной позиции знака (если позиция не указана, то отсчет начинается с нуля).
LastIndexOf(String ^s1, int); - Возвращает индекс с отсчетом от нуля последнего вхождения значения указанной строки s1 в данном экземпляре. Поиск начинается с указанной позиции знака (если позиция не указана, то отсчет начинается с нуля).
Пример 5_6. Поиск подстроки в строке.
#include "stdafx.h"
using namespace System;
int main()
{
String ^s1="Программирование";
int first, last, x;
first=s1->String::IndexOf("р");
last=s1->String::LastIndexOf("р");
Console::WriteLine("Определение позиций буквы \'р\'в слове " +
"\"программирование\" ");
Console::WriteLine("Позия первой буквы \'р\' = " + first);
Console::WriteLine("Позия последней буквы \'р\' = " + last);
x=s1->String::IndexOf("р",(first+1));
Console::WriteLine("Позиция 2-й буквы \'р' = " + x);
Console::ReadLine();
return 0;
}
Результат работы со строками:
Определение позиции буквы 'р' в слове "программирование"
Позиция первой буквы 'р' = 1
Позиция последней буквы 'р'= 9
Позиция 2-й буквы 'р' = 4
Тестовые задания
ЗАДАНИЕ 1
Определите результат работы программы
int main()
{
int x[] = { 1, 2 , -100, 200, 4};
int sum;
sum = x[1] + x[2] + x[3];
Console::WriteLine("sum={0}", sum);
return 0;
}
Варианты ответов
1. sum=101
2. sum=-97
3. sum=302
4. sum=102
ЗАДАНИЕ 2
Определите результат работы программы
int main()
{
int m[] = {1, 20, 30, 40, 50 };
int i, sum = 0;
for (i = 1; i< 4; i += 2)
sum += m[i];
Console::WriteLine("sum={0}", sum);
return 0;
}
Варианты ответов
1. sum=90
2. sum=60
3. sum=81
4. sum=141
ЗАДАНИЕ 3
int main()
{
int d[] = { 10, 20, 1, 2, 3, 4 };
int i, sum = 0;
for (i = 1; i< 4; i++)
sum += d[i];
Console::WriteLine("sum={0}", sum);
return 0;
}
Варианты ответов
1. sum=31
2. sum=21
3. sum=30
4. sum=23
ЗАДАНИЕ 4
Определите результат работы программы
int main()
{
int x[2][3] = { { 10, 4, 5 }, { 100, 1, 20 } };
int sum = 0;
sum += x[1][0] + x[1][1];
Console::WriteLine("sum={0}", sum);
return 0;
}
Варианты ответов
1. sum=101
2. sum=104
3. sum=5
4. sum=110