From tmp110306 на rplab.ru Wed Sep 10 18:10:10 2014 From: tmp110306 на rplab.ru (Sergey Maslennikov) Date: Wed, 10 Sep 2014 18:10:10 +0400 Subject: [Te12g3 1] =?utf-8?b?INCj0L/RgNCw0LLQu9C10L3QuNC1INC00LDQvdC90YvQvNC4OiA=?= =?utf-8?b?0LrQvdC40LbQutC4LCDRgdC/0LjRgdC+0Lot0YDQtdC50YLQuNC90LMs?= =?utf-8?b?INGA0LDRgdGB0YvQu9C60LA=?= Message-ID: <1410358210.3410.43.camel@sn-y510p> Всем доброго времени! На этапе изучения инструментов стоит прочитать книжки по системе, текстовому редактору Emacs, языкам C и/или C++: http://rplab.ru/phys-f/cs/index.html Желательно прочитать их к следующему занятию. Ваш список-рейтинг будет здесь: http://rplab.ru/phys-f/cs/y1409t3.html Распространите, пожалуйста, в группе данное сообщение вместе со способом подписки на рассылку (вместе с нижней частью данного сообщения). СН 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: [Te12g3 2] =?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:04:21 2014 From: tmp110306 на rplab.ru (Sergey Maslennikov) Date: Tue, 23 Sep 2014 19:04:21 +0400 Subject: [Te12g3 3] =?utf-8?b?0JfQsNC00LDQvdC40LUgMQ==?= Message-ID: <1411484661.3157.5.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 Tue Sep 30 15:50:15 2014 From: tmp110306 на rplab.ru (Sergey Maslennikov) Date: Tue, 30 Sep 2014 15:50:15 +0400 Subject: [Te12g3 4] =?utf-8?b?0JfQsNC00LDQvdC40LUgMg==?= Message-ID: <1412077815.2622.89.camel@sn-y510p> ЗАДАНИЕ 2 Определить константы a, b типа double; Определить константу c, являющуюся суммой a и b; Вывести текстом в стандартный выходной поток значение константы c. ДЛЯ РЕШЕНИЯ ИЗУЧИТЬ: Типы данных и, в частности, тип double; Отличие констант от обычных переменных; Руководство (man 3 printf) к 'printf' -- обратить особенное внимание на спецификаторы типов данных. ОЦЕНКА Решение первым -- 4; Решение в аудитории 23.09.2014 -- 3; Решение с защитой в аудитории -- 2; СН From tmp110306 на rplab.ru Tue Sep 30 15:56:54 2014 From: tmp110306 на rplab.ru (Sergey Maslennikov) Date: Tue, 30 Sep 2014 15:56:54 +0400 Subject: [Te12g3 5] =?utf-8?b?0JfQsNC00LDQvdC40LUgMg==?= Message-ID: <1412078214.2622.94.camel@sn-y510p> Ошибся в дате решения в числе лидеров -- она должна быть 30.09.2014. ЗАДАНИЕ 2 Определить константы a, b типа double; Определить константу c, являющуюся суммой a и b; Вывести текстом в стандартный выходной поток значение константы c. ДЛЯ РЕШЕНИЯ ИЗУЧИТЬ: Типы данных и, в частности, тип double; Отличие констант от обычных переменных; Руководство (man 3 printf) к 'printf' -- обратить особенное внимание на спецификаторы типов данных. ОЦЕНКА Решение первым -- 4; Решение в аудитории 30.09.2014 -- 3; Решение с защитой в аудитории -- 2; СН From tmp110306 на rplab.ru Tue Oct 7 14:48:15 2014 From: tmp110306 на rplab.ru (Sergey Maslennikov) Date: Tue, 07 Oct 2014 14:48:15 +0400 Subject: [Te12g3 6] =?utf-8?b?0JfQsNC00LDQvdC40LUgMw==?= Message-ID: <1412678895.3375.22.camel@sn-y510p> Всем доброго времени! Это задание рейтинговое. За его выполнение можно увеличить рейтинг на 4, если вы выполнили его самостоятельно в числе первых; 3, если в вашей домашней директории записано решение и вы способны его защитить. ЗАДАНИЕ 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++) или аналогичными потоковыми объектами cin, cout (языка C++). СН From tmp110306 на rplab.ru Tue Oct 14 13:22:53 2014 From: tmp110306 на rplab.ru (Sergey Maslennikov) Date: Tue, 14 Oct 2014 13:22:53 +0400 Subject: [Te12g3 7] =?utf-8?b?0JfQsNC00LDQvdC40LUgNA==?= Message-ID: <1413278573.5844.6.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; Решение в аудитории 14.10.2014 -- 5; Решение с защитой в аудитории -- 3; СН From tmp110306 на rplab.ru Tue Oct 21 13:37:26 2014 From: tmp110306 на rplab.ru (Sergey Maslennikov) Date: Tue, 21 Oct 2014 13:37:26 +0400 Subject: [Te12g3 8] =?utf-8?b?0JfQsNC00LDQvdC40LUgNQ==?= Message-ID: <1413884246.5569.5.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 2 13:37:40 2014 From: tmp110306 на rplab.ru (Sergey Maslennikov) Date: Tue, 02 Dec 2014 13:37:40 +0300 Subject: [Te12g3 9] =?utf-8?b?0JfQsNC00LDQvdC40LUgNQ==?= Message-ID: <1417516660.17774.129.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 2 13:37:00 2014 From: tmp110306 на rplab.ru (Sergey Maslennikov) Date: Tue, 02 Dec 2014 13:37:00 +0300 Subject: [Te12g3 10] =?utf-8?b?0JfQsNC00LDQvdC40LUgNQ==?= Message-ID: <1417516620.17774.128.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 2 15:35:42 2014 From: tmp110306 на rplab.ru (Sergey Maslennikov) Date: Tue, 02 Dec 2014 15:35:42 +0300 Subject: [Te12g3 11] =?utf-8?b?0J3QtSDQvtCx0YDQsNGJ0LDRgtGMINCy0L3QuNC80LDQvdC40LUg?= =?utf-8?b?0L3QsCAg0Lgg?= Message-ID: <1417523742.17774.146.camel@sn-y510p> [Te12g3 9] и [Te12g3 10] ушли в вашу рассылку по недосмотру. Не обращайте внимание. From tmp110306 на rplab.ru Tue Dec 16 13:33:45 2014 From: tmp110306 на rplab.ru (Sergey Maslennikov) Date: Tue, 16 Dec 2014 13:33:45 +0300 Subject: [Te12g3 12] =?utf-8?b?0JfQsNC00LDQvdC40LUgNg==?= Message-ID: <1418726025.2588.204.camel@sn-y510p> ЗАДАНИЕ 6 Модифицировать решение задания 5 для чтения исходных данных из входного файла и записи обработанных данных в выходной файл. Формат команды запуска должен быть таким: <название программы> -f -i <имя входного файла>\ -o <имя выходного файла> Если ключ -f опущен, программа должна выполнить "sum". Если ключ -i опущен, программа должна принимать исходные данные через стандартный входной поток. Если ключ -o опущен, программа должна выводить обработанные данные через стандартный выходной поток. Вместо ключей '-f', '-i', '-o' пользователь может использовать их соотвесттвующие длинные аналоги '--function', '--input-file', '--output-file'. Для выполнения задания вам нужно знать как читать данные из файла, как записывать данные в файл, уметь пользоваться функцией getopt_long. ОЦЕНКА Решение первым -- 15; Решение в аудитории 16.12.2014 -- 12; Решение с защитой в аудитории -- 8; СН