From tmp110306 на rplab.ru Wed Sep 10 17:10:48 2014 From: tmp110306 на rplab.ru (Sergey Maslennikov) Date: Wed, 10 Sep 2014 17:10:48 +0400 Subject: [Ph12b3 1] =?utf-8?b?0JjQt9C80LXQvdC40Lsg0YDQsNGB0YHRi9C70LrRgyDQvdCwIHBo?= =?utf-8?q?ys12b3?= Message-ID: <1410354648.3410.34.camel@sn-y510p> Всем доброго времени! Прошу прощения, я перепутал ваш год зачисления в университет (должен быть 2012, а не 2011), и включил ваши адреса в неправильную рассылку. Теперь поправил. Ваша рассылка phys12b3. СН From tmp110306 на rplab.ru Tue Sep 16 19:11:46 2014 From: tmp110306 на rplab.ru (Sergey Maslennikov) Date: Tue, 16 Sep 2014 19:11:46 +0400 Subject: [Ph12b3 2] =?utf-8?b?0JfQsNC00LDQvdC40LUgMQ==?= Message-ID: <1410880306.13820.25.camel@sn-y510p> Всем доброго времени! Тексты заданий я обычно рассылаю по почте, чтобы те, кто не дошёл до аудитории, могли бы их выполнять синхронно с теми, кто таки до аудитории дошёл. ЗАДАНИЕ 1 В вашей домашней директории на компьютере cs.rplab.ru создать текстовый файл, содержащий программу на языке C++, которая выводит в стандартный выходной поток фразу "Hello World!", скомпилировать и выполнить её с помощью утилиты "make". Текст, выводимый на экран при компиляции и выполнении, должен быть следующим: ---------8<------------- @cs:~/task1$ make g++ -O2 -c hello.cpp g++ -O2 -o hello\ hello.o ./hello Hello, World! @cs:~/task1$ --------->8------------- Все команды для компиляции и выполнения необходимо подать из редактора Emacs. За выполнение задачи в числе первых рейтинг можно увеличить на 3, за выполнение задачи на занятии рейтинг можно увеличить на 2, за выполнение при любых других обстоятельствах -- на 1 (при условии устной защиты на занятии). СН From tmp110306 на rplab.ru Fri Sep 19 15:44:18 2014 From: tmp110306 на rplab.ru (Sergey Maslennikov) Date: Fri, 19 Sep 2014 15:44:18 +0400 Subject: [Ph12b3 3] =?utf-8?b?0JjQt9C80LXQvdC10L3QuNGPINCyINGA0LDRgdC/0LjRgdCw0L0=?= =?utf-8?b?0LjQuA==?= Message-ID: <1411127058.2554.11.camel@sn-y510p> Всем доброго времени! Расписание в течение длительного времени меняют, стараясь убрать "дырки" между парами на бывшем ФТП, поэтому те версии расписания, которые есть у вас с большой вероятностью устарели. Точная версия расписания есть только в деканате ФФиИТ, на рабочей машине Бирюкова С.В. Вечерние "срезы" расписаний (наиболее точные версии из тех, что вывешены) можно посмотреть здесь: http://physics.mpgu.edu/?page_id=186 СН From tmp110306 на rplab.ru Tue Sep 23 19:09:22 2014 From: tmp110306 на rplab.ru (Sergey Maslennikov) Date: Tue, 23 Sep 2014 19:09:22 +0400 Subject: [Ph12b3 4] =?utf-8?b?0JfQsNC00LDQvdC40LUgMg==?= Message-ID: <1411484962.3157.8.camel@sn-y510p> ЗАДАНИЕ 2 Определить константы a, b типа double; Определить константу c, являющуюся суммой a и b; Вывести текстом в стандартный выходной поток значение константы c. ДЛЯ РЕШЕНИЯ ИЗУЧИТЬ: Типы данных и, в частности, тип double; Отличие констант от обычных переменных; Руководство (man 3 printf) к 'printf' -- обратить особенное внимание на спецификаторы типов данных. ОЦЕНКА Решение первым -- 3; Решение в аудитории 23.09.2014 -- 2; Решение с защитой в аудитории -- 1; СН From tmp110306 на rplab.ru Tue Oct 21 13:32:56 2014 From: tmp110306 на rplab.ru (Sergey Maslennikov) Date: Tue, 21 Oct 2014 13:32:56 +0400 Subject: [Ph12b3 5] =?utf-8?b?0JfQsNC00LDQvdC40LUgMw==?= Message-ID: <1413883976.5569.2.camel@sn-y510p> Всем доброго времени! ЗАДАНИЕ 3 Написать программу, которая через стандартный входной поток принимает текстовую строку, в которой через пробел или символ табуляции записана пара действительных чисел (например, "31.528 23.836"), а затем в стандартный выходной поток выводит строку, которая содержит первое число, второе число, сумму первого и второго чисел (например, "31.528 23.836 55.364"). Принцип действия программы пояснён следующим примером, в котором предположено, что ваша программа скомпилирована в исполняемый файл 'task3': Команда echo -ne "13 8\n" | ./task3 приводит к выводу в стандартный выходной поток 13 8 21 Для выполнения задания вам нужно не бояться трудностей, знать описание команды echo, её ключей -n, -e, а также, что значит '|' (вертикальная чёрточка) для интерпретатора команд (см. литературу по системе). Для программирования task3 необходимо знать, как пользоваться функциями scanf и printf (языков C, C++). ОЦЕНКА Решение первым -- 5; Решение в аудитории 21.10.2014 -- 4; Решение с защитой в аудитории -- 3; СН From tmp110306 на rplab.ru Tue Oct 21 13:34:36 2014 From: tmp110306 на rplab.ru (Sergey Maslennikov) Date: Tue, 21 Oct 2014 13:34:36 +0400 Subject: [Ph12b3 6] =?utf-8?b?0JfQsNC00LDQvdC40LUgNA==?= Message-ID: <1413884076.5569.4.camel@sn-y510p> ЗАДАНИЕ 4 Написать программу, которая через стандартный входной поток принимает текстовые строки, в каждой из которых через пробел или символ табуляции записана пара действительных чисел (например, "31.528 23.836"), а затем в стандартный выходной поток выводит строки, которые содержат первое число, второе число, сумму первого и второго чисел (например, "31.528 23.836 55.364"). Принцип действия программы пояснён следующим примером, в котором предположено, что ваша программа скомпилирована в исполняемый файл 'task4': Команда echo -ne "13 8\n15 9\n1.1 2.8\n" | ./task4 приводит к выводу в стандартный выходной поток 13 8 21 15 9 24 1.1 2.8 3.9 Для выполнения задания вам нужно не бояться трудностей, знать описание команды echo, её ключей -n, -e, а также, что значит '|' (вертикальная чёрточка) для интерпретатора команд (см. литературу по системе). Для программирования task4 необходимо знать, как использовать циклы while или for, функции scanf и printf (языков C, C++) или аналогичные по назначению потоковые объекты cin, cout (языка C++). ОЦЕНКА Решение первым -- 6; Решение в аудитории 21.10.2014 -- 5; Решение с защитой в аудитории -- 3; СН From tmp110306 на rplab.ru Tue Dec 2 13:39:22 2014 From: tmp110306 на rplab.ru (Sergey Maslennikov) Date: Tue, 02 Dec 2014 13:39:22 +0300 Subject: [Ph12b3 7] =?utf-8?b?0JfQsNC00LDQvdC40LUgNQ==?= Message-ID: <1417516762.17774.130.camel@sn-y510p> ЗАДАНИЕ 5 Модифицировать решение задания 4 таким образом, чтобы вместо операции сложения выполнялось сложение, либо вычитание, либо умножение, либо деление в зависимости от одного единственного аргумента командной строки, которым может быть "sum", либо "sub", либо "mult", либо "div", соответственно. Принцип действия программы пояснён следующим примером, в котором предположено, что ваша программа скомпилирована в исполняемый файл 'task5': Команда echo -ne "13 8\n15 9\n1.1 2.8\n" | ./task5 sub приводит к выводу в стандартный выходной поток 13 8 5 15 9 6 1.1 2.8 -1.7 Для выполнения задания вам нужно знать, что есть массив, строка указатель, указатель на указатель, назначение аргументов argc и **argv функции main, научиться пользоваться логическими операторами if или switch. ОЦЕНКА Решение первым -- 10; Решение в аудитории 21.10.2014 -- 8; Решение с защитой в аудитории -- 5; СН From tmp110306 на rplab.ru Tue Dec 9 13:36:33 2014 From: tmp110306 на rplab.ru (Sergey Maslennikov) Date: Tue, 09 Dec 2014 13:36:33 +0300 Subject: [Ph12b3 8] =?utf-8?b?0JfQsNC00LDQvdC40LUgNg==?= Message-ID: <1418121393.4898.46.camel@sn-y510p> ЗАДАНИЕ 6 Модифицировать решение задания 5 для чтения исходных данных из входного файла и записи обработанных данных в выходной файл. Формат команды запуска должен быть таким: <название программы> -f -i <имя входного файла>\ -o <имя выходного файла> Если ключ -f опущен, программа должна выполнить "sum". Если ключ -i опущен, программа должна принимать исходные данные через стандартный входной поток. Если ключ -o опущен, программа должна выводить обработанные данные через стандартный выходной поток. Вместо ключей '-f', '-i', '-o' пользователь может использовать их соотвесттвующие длинные аналоги '--function', '--input-file', '--output-file'. Для выполнения задания вам нужно знать как читать данные из файла, как записывать данные в файл, уметь пользоваться функцией getopt_long. ОЦЕНКА Решение первым -- 15; Решение в аудитории 14.10.2014 -- 12; Решение с защитой в аудитории -- 8; СН