Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Языки программирования (пособие).doc
Скачиваний:
6
Добавлен:
01.07.2025
Размер:
965 Кб
Скачать
☆

4.2.6Пример работы с массивом строк

#include <iostream>

#include <string>

#include <windows.h>

#include <ctime>

using namespace std;

const int n = 20;

string cities[20] = {

"Нижний Новгород", "Москва", "Красноярск",

"Новосибирск", "Новый Уренгой",

"Набережные Челны", "Одесса", "Барселона",

"Лондон", "Нижний Тагил", "Сочи", "Липецк",

"Барнаул", "Сергиев Посад", "Томск",

"Омск", "Челябинск", "Великий Устюг",

"Киев", "Иркутск"

};

void printCities() {

for (int i=0; i<n; i++) {

cout << cities[i] << endl;

}

}

string longestString() {

string result = cities[0];

for (int i=1; i<n; i++) {

if (result.length() < cities[i].length()) {

result = cities[i];

}

}

return result;

}

int totalSymbols() {

int result = 0;

for (int i=0; i<n; i++) {

result += cities[i].length();;

}

return result;

}

void sortCities() {

for (int i=0; i<n-1; i++) {

int j_max = i;

for (int j=i+1; j<n; j++) {

if (cities[j_max] > cities[j]) {

j_max = j;

}

}

string temp = cities[i];

cities[i] = cities[j_max];

cities[j_max] = temp;

}

}

void startWith(char firstLetter) {

for (int i=0; i<n; i++) {

if (cities[i][0] == firstLetter) {

cout << cities[i];

}

}

}

void printMenu() {

cout << "1 - Вывести все города\n";

cout << "2 - Отсортировать по алфавиту\n";

cout << "3 - Города, начинающиеся в буквы...\n";

cout << "4 - Город с самым длинным названием\n";

cout << "5 - Сколько всего символов\n";

cout << "0 - Выход\n";

}

int main() {

SetConsoleCP(1251);

SetConsoleOutputCP(1251);

while (true) {

printMenu();

int choice;

cout << "Ваш выбор - ";

cin >> choice;

switch (choice) {

case 1 :

printCities();

break;

case 2 :

sortCities();

break;

case 3 :

cout << "Введите букву: ";

char letter;

cin >> letter;

startWith(letter);

break;

case 4 :

cout << longestString() + "\n";

break;

case 5 :

cout << totalSymbols() << endl;

break;

case 0 :

exit(EXIT_SUCCESS);

default :

cout << "Неправильный выбор\n";

}

system("pause");

system("cls");

}

return 0;

}

4.2.7Контрольные вопросы

  1. Как объявить массив строк?

  2. Как инициализировать массив строк?

  3. Как присвоить значения элементам массива строк?

  4. Как отсортировать массив строк?

  5. Как отсортировать массив строк по длине?

  6. Создайте массив строк и выведите его на экран.

  7. Выведите строки, начинающиеся с заданной буквы.

  8. Отсортируйте массив строк по алфавиту.

  9. Отсортируйте массив строк по длине.

  10. Введите строку и проверьте, есть ли такая строка в массиве.

Тема 4.3. Файлы

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

Файлы предоставляют возможность хранения информации независимо от того, работает программа или нет, а также хранения больших объемов информации. Они находятся на жестком диске, и их содержимое загружается в оперативную память по мере необходимости.