Void main(). set_i::iterator is, isbegin, isend;

{

map_ss m;

map_ss::iterator im;

set_i::iterator is, isbegin, isend;

string word;

int num = 1;

ifstream in ("1.txt");

if (!in)

{

cout << "Cannot open input file.\n";

exit(1);

}

while (wordread(in, word, num))

{

im = m.find(word);

if (im == m.end())

im = m.insert(map_ss::value_type(word,

set_i())).first;

(*im).second.insert(num);

}

for (im = m.begin(); im != m.end(); im++)

{

cout << setiosflags(ios::left ) <<

setw(15) << (*im).first.c_str();

isbegin = (*im). second.begin();

isend = (*im).second.end();

for (is = isbegin; is != isend; is++)

cout << " " << *is;

cout << endl;

}

}

 

Допустимо, вхідний файл 1.txt містить наступний текст:

 

#include <fstream>

#include <iostream>

#include <iomanip>

#include <string>

#include <set>

#include <map>

const const

 

В цьому випадку програма виведе на екран:

 

const 7

fstream 1

include 1 2 3 4 5 6

iomanip 3

iostream 2

map 6

set 5

string 4

 

Розглянемо роботу програми докладніше. Функція wordread зчитує чергове слово з вхідного файлу, вважаючи, що в слово можуть входити алфавітно-цифрові символи і знак підкреслення, а також формує номер поточного рядка. Створювана вказівка зберігається в словнику, що складається з пар "рядок – множина". Рядок є ключем, в ньому міститься окреме слово з вхідного файлу. Безліч цілих чисел зберігає номери рядків, в яких зустрічається дане слово. І множина, і словник без нашої участі забезпечують швидкий пошук і впорядковане зберігання елементів без дублікатів. Для кожного слова за допомогою функції find перевіряється, чи міститься воно в словнику. Якщо слова немає (функція повернула end()), в словник за допомогою функції insert додається пара, яка складається з цього слова і порожньої множини (виклик конструктора set_i()). Функція insert повертає пару, першим елементом якої (first) є ітератор на вставлений елемент. Він привласнюється змінній im. В наступному операторові відбувається додавання за допомогою функції insert нового елементу в множину, яка є другим (second) елементом словника. Далі виконується виведення словника. Для кожного слова в циклі виводяться елементи множини номерів рядків.

 

Завдання

 

Виконати завдання за допомогою контейнерів vector (вектор), deque (черга), list (список).

Перелік варіантів завдань:

Варіант 1

Є вектор цілих чисел, який складається з n елементів. Визначити добуток додатних парних чисел вектору. Якщо таких елементів немає, вивести повідомлення: "Додатних парних елементів у векторі немає".

Варіант 2

Є черга цілих чисел, яка складається з n елементів. Визначити добуток від’ємних чисел черги, що стоять на парних позиціях. Якщо таких елементів немає, вивести повідомлення: "Від’ємних елементів в черзі немає".

Варіант 3

Є список цілих чисел, який складається з n елементів. Визначити суму і кількість непарних чисел списку. Якщо таких елементів немає, вивести повідомлення: "Непарних елементів в списку немає".

Варіант 4

Є вектор цілих чисел, який складається з n елементів. Визначити в ньому суму і кількість чисел, кратних 5. Якщо таких елементів немає, вивести повідомлення: "Елементів кратних 5 у векторі немає".

Варіант 5

Є черга цілих чисел, яка складається з n елементів. Визначити у ній кількість чисел, кратних 2, і чисел, не кратних 3. Якщо таких елементів немає, вивести повідомлення: "Чисел, кратних 2 і чисел не кратних 3 в черзі немає".

Варіант 6

Є список цілих чисел, який складається з n елементів. Визначити кількість і добуток елементів списку, які знаходяться в діапазоні [0; 7]. Якщо таких елементів немає, вивести повідомлення: "Елементів з діапазону [0; 7] в списку немає".

Варіант 7

Є вектор цілих чисел, який складається з n елементів. У ньому визначити середнє арифметичне значення чисел, кратних трьом. Якщо таких елементів немає, вивести повідомлення: "Елементів кратних 3 у векторі немає".

Варіант 8

Є черга цілих чисел, яка складається з n елементів. Визначити середнє арифметичне значення елементів черги, які містяться в діапазоні [-3; 5]. Якщо таких елементів немає, вивести повідомлення: "Елементів, що задовольняють вимозі, в черзі немає".

Варіант 9

Є список цілих чисел, який складається з n елементів. У ньому визначити мінімальний елемент та його порядковий номер.

Варіант 10

Є вектор цілих чисел, який складається з n елементів. Визначити добуток непарних елементів вектору, що стоять на парних позиціях. Якщо таких елементів немає, вивести повідомлення: "Непарних елементів, що стоять на парних позиціях у векторі немає".

Варіант 11

Є черга цілих чисел, яка складається з n елементів. Визначити середнє арифметичне значення елементів черги, кратних восьми. Якщо таких елементів немає, вивести повідомлення: "Елементів кратних 8 в черзі немає".

Варіант 12

Є список цілих чисел, який складається з n елементів. У ньому серед додатних елементів визначити максимальний елемент.

Варіант 13

Є вектор цілих чисел, який складається з n елементів. Визначити добуток додатних елементів вектору та їх кількість. За відсутності додатних чисел вивести повідомлення "Додатних чисел у векторі немає".

Варіант 14

Є черга цілих чисел, яка складається з n елементів. Обчислити кількість елементів черги, кратних семи. За відсутності таких елементів вивести повідомлення "Елементів кратних 7 немає".

Варіант 15

Є список цілих чисел, який складається з n елементів. Визначити середнє арифметичне значення мінімального і максимального елементів списку.

Варіант 16

Є вектор цілих чисел, який складається з n елементів. Визначити суму і добуток додатних чисел, що стоять на парних позиціях.

Варіант 17

Є черга цілих чисел, яка складається з n елементів. Визначити середнє арифметичне значення додатних елементів і середнє арифметичне значення від’ємних елементів.

Варіант 18

Є список цілих чисел, який складається з n елементів. Визначити окремо кількість від’ємних чисел, кількість додатних чисел і чисел, рівних нулю.

Варіант 19

Є вектор цілих чисел, який складається з n елементів. Визначити суму додатних парних чисел вектору. У разі відсутності додатних парних чисел вивести повідомлення "Додатних парних чисел у векторі немає".

Варіант 20

Є черга цілих чисел, яка складається з n елементів. Визначити середнє арифметичне значення чисел черги, що стоять на парних позиціях, і середнє арифметичне значення чисел, що стоять на непарних позиціях.

 

 


РОЗДІЛ 11. АЛГОРИТМИ








Дата добавления: 2014-12-26; просмотров: 725;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.01 сек.