К основному контенту

Сообщения

Сообщения за 2015

Работа с потоками ввода-вывода. Алгоритмы STL. Дуравкина. C++

Имеется массив объектов студент (фио, факультет, специальность, год рождения).  Массив заполняется из файла. С отсортировать массив по заданному полю с использованием алгоритмов сортировки STL для нисходящей и восходящей сортировки  использовать разные алгоритмы. 

Интересная задачка для развития. Решено через Map. C++

Три дачника выращивают на своих участках цветы из имеющегося списка (ирис, роза, астра, пион, георгин, хризантема, гладиолус).Определить, цветы каких видов выращивают все дачники; хотя бы два из них; не выращивает ни один из дачников.

Коллекции: List, Map, vector, deque. Дуравкина. C++

//  //Написать функцию, с помощью которой подготовить текстовый файл input.txt сохранив в нею 100 случайных целых чисел в диапазоне  //от -50 до +50 по одному на строке. Файл возвращается функцией как результат. Написать функцию inputfile(). получающую файл как аргумент //и возвращающую последовательный контейнер, заполненный числами из файла. Написать функцию modify(), получающую в качестве аргумента  //контейнер-результат функции inputfile(). Модифицированный контейнер возвращается в качестве результата. Добавить в контейнер-результат  //вычисление суммы и среднего арифметического по абсолютной величине.  //В качестве контейнера использовать вектор, двустороннюю очередь и список. //10. Добавить к каждому числу половину последнего отрицательного числа.

Возвращаюсь в ряды плюсовиков. Шаблоны C++

Давно не постила ничего, но это не значит что я ничем не занималась! Задачек было решено немало, снова делюсь с вами решениями из разных задачников, в частности Дуравкиной. Условия как всегда в комментах. Тема: шаблоны

Схема разделения секрета Шамира C++

Здесь приведена схема ТОЛЬКО распределения секрета, восстановление секрета я пока осилить не могу. Уравнения Лагранжа не понимаю как задать алгоритмически. Повторюсь про авторские права, попрошу их не нарушать и осведомлять о использовании кода. Отказывать никому я не собираюсь, но осведомлять прошу.

Алгоритм для аутентефикации HMAC C++

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

Java Web Programming в EPAM

Поступила я на курсы с большими амбициями и с ощущением наличия у меня кое-каких знаний. но первое же практическое занятие в EPAM разубедило меня полностью в том что я хоть что-то знаю. в общем, учиться, учиться и еще раз, учиться. с консолью никогда не работала, с переводом систем счисления никогда даже не имела дела, даже не пыталась, а стоило бы. с пакетами столкнулась впервые. 5 задача работает у меня малех на костылях, о стройности решения тут и речи не идет. мною руководила одна мысль - лишь бы написать и оно заработало.  Выкладываю частично интересные задания:

Строки. Java

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

Типы данных. Java

немного задачек для универа на java. авось кому полезно будет. структура такова: первый класс содержит в себе первую задачу и main, а в нем вызовы всех остальных классов, в каждом классе отдельная задача.

Прата С. Решение 7 главы

Немного грустно, но я пока что прекращаю работу над плюсами. Решила осваивать джаву. Это последняя глава по Прате над которой я работала. Сейчас читаю Файна, учебник элементарный, но ознакамливает с синтаксисом джавы, ибо строгий слог Хорстманна сразу так сходу, как я рассчитывала, не пошел.

Прата С. Решение задач 6 главы

На решение этих задач у меня ушло 2 дня. Становится все интереснее и интереснее! и черт возьми, я наконец-то поняла работу с файлами! прошу прощения за корявые условия. просто в нормальном формате электронной книги у меня нет, потому скрины задач просто пропущены через Файнридер.

Прата С. решение задач 5 главы

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

Прата С. Решение 3 и 4 главы

Повторюсь, взяла только интересные мне задания, т.е. с элементами того что поняла плохо/не встречала ранее. Сделала за сегодня. с удовольствием отмечаю что сдвиги  в положительную сторону  хотя-бы в стиле есть . в 4 главе ясно объяснено почему при вводе нескольких строк начинаются проблемы, и как этого избежать, подробно описана работа с входным потоком. Как работать со строками стиля Си и класса String, разница. для себя я сделала выводы что лучше всего, конечно-же класс string. намного меньше мороки. и метод ввода getline в обоих случаях. в задачах разница проиллюстрирована. и кстати, указатели больше не вызывают у меня ужаса и трепета. много нового узнала о видах структур. эта глава расставила все по местам в моей голове. правда, зачем в задачи на СР втиснута работа с массивом array - загадка. он ведь толком не объяснен, но понять его интуитивно можно, правда, зачем его использовать не зная тонкостей, как обычный массив с немного иным объявлением... что же, почитаем, посмотрим. 

Немножечко бредятины

В универе нам дали под сотню задач. авось, кому и пригодится. написано часто коряво, часто встречаются костыли, препод по программированию был жутко недоволен, но, чисто концептуально можно посмотреть) где стоят значки ---------- значит или не работает код или работает но неверно

Пора прощаться со старыми друзьями

Как бы не было прискорбно признавать, Лафоре после 9 главы начал разочаровывать меня. все больше путанных объяснений, туманных заданий, лирических отступлений... в 10 главе, где идет речь об указателях, не понятно совершенно ничего. посыпав голову себе пеплом, я начала искать другую книгу по программированию. преподаватель в универе советовал обратить внимание на Прату. ну, как оказалось, не зря. уже в 4 главе там шла речь об указателях, и, на удивление, я поняла их за пол часа. но, если бы я читала Прату с нуля - я бы запуталась. Там, все же, нужны начальные знания хотя бы по Си. как бы то ни было, я начну выкладывать скоро решения по Прате, правда, более выборочно, только те задания, которые кажутся мне интересными, ведь, я уже много чего и так проходила. Комментарии будут обязательно.

9 глава, Лафоре Р.

*1. Представьте себе издательскую компанию, которая торгует книгами и аудио-записями этих книг. Создайте класс publication, в котором хранятся название (строка) и цена (типа float) книги. От этого класса наследуются еще два класса: book, который содержит информацию о количестве страниц в книге (типа int), и type, который содержит время записи книги в минутах (тип float). В каждом из этих трех классов должен быть метод getdata(), через который можно получать данные от пользователя с клавиатуры, и putdata(), предназначенный для вывода этих данных. Напишите функцию main() программы для проверки классов book и type. Создайте их объекты в программе и запросите пользователя ввести и вы- вести данные с использованием методов getdata() и putdata().

8 глава, Лафоре Р.

*1. Добавьте в класс Distance из программы ENGLPLUS этой главы перегру- женную операцию -, которая вычисляет разность двух интервалов. Она должна позволять выполнение выражений типа dist3 = dist1-dist2;. Предпо- лагаем, что эта операция никогда не будет использоваться для вычитания большего интервала из меньшего (так как отрицательного интервала быть не может).

7 глава, Лафоре Р

*1. Напишите функцию reversit(), которая переворачивает строку (массив типа char). Используйте цикл for, который меняет местами первый и последний символы, затем следующие и т. д. до предпоследнего. Строка должна пере- даваться в функцию reversit() как аргумент. Напишите программу для выполнения функции reversit(). Программа долж- на принимать строку от пользователя, вызывать функцию reversit(), а за- тем выводить полученный результат. Используйте метод ввода, который позволяет использовать внутренние пробелы. Протестируйте программу на примере фразы «Аргентина манит негра».

6 глава, Лафоре Р

*1. Создайте класс Int, имитирующий стандартный тип int. Единственное поле этого класса должно иметь тип int. Создайте методы, которые будут устанавливать значение поля, равным нулю, инициализировать его целым значением, выводить значение поля на экран и складывать два значения типа Int. Напишите программу, в которой будут созданы три объекта класса Int, два из которых будут инициализированы. Сложите два инициализирован- ных объекта, присвойте результат третьему, а затем отобразите результат на экране.

5 Глава, Лафоре Р.

*1. Вернитесь к рассмотрению примера CIRCAREA главы 2 «Основы програм- мирования на C++». Напишите функцию с именем circarea(), которая ана- логичным образом вычисляет площадь круга. Функция должна принимать один аргумент типа float и возвращать значение типа float. Напишите функ- цию main(), которая просит пользователя ввести значение радиуса, вызы- вает функцию circarea(), а затем отображает результат вычисления на экране.

4 глава, Лафоре Р.

*1. Номер телефона, например (212) 767—8900, можно условно разделить на три части: код города (212), номер телефонной станции (767) и номер абонента (8900). Напишите программу с использованием структуры, поз- воляющую раздельно хранить эти три части телефонного номера. Назо- вите структуру phone. Создайте две структурные переменные типа phone. Инициализацию одной из них произведите сами, а значения для другой запросите с клавиатуры. Затем выведите содержимое обеих переменных на экран. Результат работы программы должен выглядеть приблизитель- но так: Введите код города, номер станции и номер абонента: 415 555 1212 Мой номер (212) 767-8900 Ваш номер (415) 555-1212

3 глава, Лафоре Р.

*1. Предположим, вы хотите создать таблицу умножения на заданное число. Напишите программу, которая позволяет пользователю ввести это число, а затем генерирует таблицу размером 20 строк на 10 столбцов. Первые строки результата работы программы должны выглядеть примерно сле- дующим образом: Введите число: 7 7142128354249566370 77849198105112119126133140 147154161168175182189196203210

2 глава. Лафоре Р.

Лафоре Р. Решение задач по третьей главе: сразу предупреждаю, правильность не гарантирована, но, код работает. по возможности откомментирован. задачи могут быть не все, какие-то опущены по разным причинам. Задачи *1. Считая, что кубический фут равен 7.481 галлона, написать программу, запрашивающую у пользователя число галлонов и выводящую на экран эквивалентный объем в кубических футах.

C++ или как я изучаю программирование

Здесь я буду выкладывать мои соображения по поводу учебников программирования и решенные задачи. сразу обмолвлюсь - я новичок. может кому помогу, может кто посмотрит и скажет презрительно: "что за убожество". но я учусь. и стараюсь помогать другим. свое обучение я решила начать с объектно-ориентированного программирования на С++. Прочитала Лафоре Р. С++ ООП и сейчас в процессе Прата С.