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

Сообщения

Сообщения за январь, 2015

Прата С. Решение задач 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++ или как я изучаю программирование

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