Требуется написать программу которая формирует и печатает уникальный логин

Занятия 9-12 (8 часов). Использование классов-коллекций (ArrayList, HashTable, Stack, Queue) (динамические структуры данных).

  1. Дан текстовый файл, в котором записана последовательность целых чисел. Сформировать из них два списка – в одном только четные элементы, в другом – нечетные.
  2. Использование списка для представления полинома. Написать функции:
  • Ввода полинома;
  • Печати полинома;
  • Вычисления полинома в заданной точке;
  • Получения суммы двух полиномов;
  • Получения произведения двух полиномов;
  • Получения производной полинома;
  • Получения первообразной полинома.
  1. Использование списка для представления разреженной матрицы (матрицы с большим количеством нулевых элементов). Написать функции:
  • Ввода матрицы;
  • Печати матрицы;
  • Суммирования двух матриц;
  • Умножения двух матриц;
  • Транспонирования матрицы.
  1. Написать программу «Предметный указатель». Каждый компонент указателя содержит слово и номера страниц, на которых это слово встречается. Количество номеров страниц, относящихся к одному слову может быть любым. Предусмотреть возможность формирования указателя с клавиатуры и из файла, печати предметного указателя, сохранения в файл, вывода номеров страниц для заданного слова, добавления и удаления элемента из указателя.
  2. Написать программу «Адресная книжка». Каждая запись в книжке содержит имя адресата, дату рождения и список номеров телефона (домашнего, мобильного и пр.). Предусмотреть возможность формирования адресной книжки с клавиатуры и из файла, печати адресной книжки, поиска записи по какому-либо признаку (фамилии, дате рождения или номеру телефона), добавления и удаления записей, сохранения в файл.
  3. Написать программу «Каталог библиотеки». Каждая запись каталога содержит информацию о книге – название, автор, количество экземпляров, количество экземпляров «на руках». Предусмотреть возможность формирования каталога с клавиатуры и из файла, печати каталога, сохранения в файл, поиска книги по какому-либо признаку (например, автору или названию), добавления книг в библиотеку, удаления книг из нее, фиксации получения или возврата книги читателем.
  4. Дан односвязный список, содержащий целые числа. Написать функцию, которая за один проход по списку распечатывает эти числа следующим образом: сначала все четные числа в обратном порядке их следования в списке, затем все нечетные числа в прямом порядке их следования. Для решения задачи использовать стек и очередь.
  5. Дан односвязный список, содержащий целые числа. Написать функцию, которая за один проход по списку распечатывает эти числа таким образом, что сначала распечатаются все отрицательные числа, затем – все положительные. Элементы, равные нулю, печататься не должны. Для решения задачи использовать очередь.
  6. Получить двоичное представление заданного целого числа, используя стек.
  7. Лабиринт задан в виде прямоугольной матрицы, в которой используются следующие обозначения: 0 – возможен проход, 1 – стена. Даны координаты позиция путника в лабиринте. С помощью стека распечатать путь, по которому путник может выйти из лабиринта, если выход существует. Считается, что путник вышел из лабиринта, если он находится на первой или последней строке матрицы, или на первом или последнем столбце. Путник может двигаться только по горизонтали или по вертикали.
  8. Дана символьная строка, которая содержит правильное скобочное выражение. Для каждой пары скобок (открывающей и соответствующей ей закрывающей) распечатать номера их позиций в строке, упорядочив пары:
  • по возрастанию номеров открывающих скобок;
  • по возрастанию номеров закрывающих скобок.
  1. Дана символьная строка, содержащая правильно записанное математическое выражение следующего вида:
Читайте также:
Можно ли устанавливать программы не на системный диск

M – операция вычисления max из двух выражений, m — операция вычисления min из двух выражений. Написать функцию вычисления значения этого выражения.

ChatGPT В Питоне. Создаем телеграм бота при помощи OpenAI ChatGTP Python

Дипломы СПО с QR кодом пошаговое заполнение и печать. Вебинар от 27 января 2023 года.

  1. Дана символьная строка, содержащая правильно записанное логическое выражение следующего вида:

And – операция логического И, Or – операция логического ИЛИ, Not — операция логического НЕ.

Написать функцию вычисления этого выражения (функция должна возвращать true, если значение выражения равно T, false – в противном случае).

  1. Дана символьная строка, содержащая постфиксную форму правильно записанного арифметического выражения, операндами которого являются цифры. Написать функцию вычисления этого выражения.
  2. Можно использовать следующий алгоритм. Выражение просматривается слева направо. Если встречается цифра, то она заносится в стек. Если встречается знак операции, то из стека извлекаются два операнда, над ними выполняется операция и ее результат записывается в стек. Когда выражение заканчивается, в стеке остается одно число – значение выражения.

Источник: studfile.net

brbraww / 1.py

This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters

# 1
# Дан текстовый файл, в котором записана последовательность целых чисел. Записать в новый файл только четные из них.
with open ( ‘untitled.txt’ , ‘r’ ) as f :
a = f . readlines ()
s = »
for i in range ( len ( a )):
for j in a [ i ]:
if j == ‘ n ‘ :
continue
if int ( j ) % 2 == 0 :
s += j
with open ( ‘экзамен.txt’ , ‘w’ ) as f :
f . write ( s )

This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters

# 2
# Сгенерировать набор целых чисел, записать их в бинарный файл.
# Не считывая, данные в массив, найти из этого файла максимальный элемент.
from random import randint
import pickle
filename = ‘binar.dat’
a = []
for i in range ( 30 ):
a . append ( randint ( 0 , 100 ))
with open ( filename , «wb» ) as file :
for i in a :
pickle . dump ( i , file )
with open ( filename , «rb» ) as file :
curr = pickle . load ( file )
for i in range ( len ( a ) — 1 ):
new = pickle . load ( file )
if new > curr :
curr = new
print ( max ( a ), curr )
Читайте также:
Программа эркипер для общепита описание

This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters

# 3
# Записать бинарный файл с массивом целых чисел. Создать новый текстовый файл, в котором числа будут отсортированы в порядке возрастания.
from random import randint
import pickle
filename = ‘binar.dat’
name = ‘sorted.txt’
a = []
for i in range ( 30 ):
a . append ( randint ( 0 , 100 ))
with open ( filename , «wb» ) as file :
pickle . dump ( a , file )
with open ( name , ‘w’ ) as file :
file . write ( str ( sorted ( a )))

This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters

# 4
# В текстовом файле содержатся фамилии и имена студентов. Известно, что общее количество студентов не превосходит 100.
# В первой строке вводится количество зарегистрированных студентов (N). Далее следуют N строк.
# Требуется написать программу, которая формирует и печатает уникальный логин для каждого студента по следующему правилу:
# если фамилия встречается первый раз, то логин – это данная фамилия,
# если фамилия встречается второй раз, то логин – это фамилия, в конец которой приписывается число 2 и т.д
fam = [ ‘ivanov’ , ‘petrov’ , ‘ivanov’ , ‘sidorov’ , ‘ivanov’ , ‘sidorov’ , ‘ivanov’ , ‘sidorov’ , ‘ivanov’ , ‘petrov’ , ‘ivanov’ , ‘sidorov’ , ‘ivanov’ , ‘sidorov’ , ‘ivanov’ , ‘sidorov’ , ‘lol’ ]
fam . sort ()
log = []
n = 2
for i in fam :
if i in log :
log . append ( i + str ( n ))
n += 1
else :
log . append ( i )
n = 2
for i in log :
print ( i )

This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters

# 5
# Текстовый файл содержит произвольные алфавитно-цифровые символы. Ввод этих символов заканчивается точкой.
# Требуется написать программу, которая будет печатать последовательность строчных английских букв (‘a’ ‘b’. ‘z’) из входной последовательности и частоты их повторения.
# Печать должна происходить в алфавитном порядке
s = ‘sadaksdpaoimiaepwavpo125125eismaeoi3123124ma41255waliveu52ai1255151512nveovlansnz131ol.’
a = ‘a b c d e f g h i j k l m n o p q r s t u v w x y z’
a = a . split ( ‘ ‘ )
for i in range ( len ( a )):
print ( str ( a [ i ]) + ‘ ‘ + str ( s . count ( a [ i ])))

Источник: gist.github.com

Олимпиады по программированию

Этот блог посвящен вопросам подготовки к олимпиадам по программированию и самой технологии программирования. Используемый язык программирования предпочитаю Паскаль. С некоторых пор стала подробнее изучать Си, так что теперь могу поделиться примерами и на Си. Не все мне известно, но то, что знаю — делюсь с Вами.

Читайте также:
Температура видеокарты программа aida64

Страницы

  • Главная страница
  • Задачи с олимпиад
  • Разбор заданий из ЕГЭ
  • Разбор задач с олимпиад

Поиск по этому блогу

понедельник, 4 мая 2015 г.

Использование map в С++

  • определить количество уникальных слов в тексте, в котором их количество заранее не известно;
  • найти частоту появления символов или слов (провести частотный анализ);
  • определить по заданному словарю закодированный текст;
  • вывести слова в алфавитном порядке.

map — это параметризованный класс из библиотека STL в С++, который может применяться для описания множества или ассоциированного массива. В этом массиве вместо числового индекса может быть строка (first), а значение элементов массива — количество слов (повторений) в тексте (second). При этом индекс в массиве не может повторяться.

Описание:
Для вывода элементов массива — используется итератор (указатель на текущий элемент массива):
map ::iterator it;

  1. количество записей (содержимое элемента массива): int p=L.count ( s );
  2. добавление новой записи со значением 1: L.insert ( pair (s, 1) );
    или L[s]=1;
  3. поиск записи по строке s: it = L.find(s);
  4. удаление записи по итератору: L.erase (it);
  5. количество элементов в массиве: int n=L.size();
  6. указатель на начало массива: it = L.begin();
  7. указатель на конец массива: it = L.end();

Приведем разбор таких заданий (задачи взяты здесь с сохранением нумерации).

44) На электронную почту Вам пришло письмо, подписанное аббревиатурой (первыми буквами фамилии, имени и отчества (далее — ФИО) отправителя). Аббревиатура оказалась Вам незнакома. У Вас есть список всех предполагаемых отправителей, взятый из ранее полученных писем, среди которых различных людей с такой аббревиатурой не больше 10.

Вам предлагается написать эффективную, в том числе по используемой памяти, программу, которая определит всех вероятных адресатов – людей, ФИО которых можно сократить до нужной аббревиатуры. ФИО следует выдать в порядке убывания частоты их встречаемости в списке.

На вход программе в первой строке подается аббревиатура – строка, состоящая из трех заглавных латинских букв. Во второй строке находится число N – количество ФИО, полученных в результате анализа почты, не все из них подходят под указанную аббревиатуру. Значение N может быть очень велико.

В каждой из следующих N строк записано три слова: Фамилия Имя Отчество соответствующего человека. Слова разделяются одним пробелом. В конце и в начале строки пробелов нет. Все слова записаны заглавными латинскими буквами. Длина ФИО не превышает 100 символов.

Гарантируется, что хотя бы один человек с нужной аббревиатурой есть.


Пример входных данных:

IPI
4
IVANOV PETR IVANOVICH
PETROV IVAN IVANOVICH
IVANOV PETR IVANOVICH
ILYIN PETR ILYICH

Программа должна вывести предполагаемых отправителей письма с указанием частоты их встречаемости в списке (в порядке убывания частоты).

Пример выходных данных для приведенного выше примера входных данных:
IVANOV PETR IVANOVICH 2
ILYIN PETR ILYICH 1

Источник: olymp-programming.blogspot.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru