From tmp110306 на rplab.ru Wed Sep 17 19:12:38 2014 From: tmp110306 на rplab.ru (Sergey Maslennikov) Date: Wed, 17 Sep 2014 19:12:38 +0400 Subject: [Ph14m 1] =?utf-8?b?0JrQvtC80L8uINGC0LXRhS4g0LIg0L3QsNGD0LrQtTog0LrQvdC4?= =?utf-8?b?0LbQutC4LCDRgdC/0LjRgdC+0Lot0YDQtdC50YLQuNC90LM=?= Message-ID: <1410966758.13820.75.camel@sn-y510p> Всем доброго времени! Из семинара следовало, что начнём мы с изучения инструментов. В нашем случае одним из них является язык программирования. Программировать, однако, придётся на машинах с определённой операционной системой, используя некоторый текстовый редактор. По сему, придётся начать с одновременного изучения системы, редактора и языка, коими будут Linux, Emacs, C или C++, соответственно. Литература по ним есть здесь: http://rplab.ru/phys-f/cs/index.html Выполнение заданий будем фиксировать в этом списке: http://rplab.ru/phys-f/cs/y1409t3.html В нём же будет колонка с вашими рейтингами. СН From tmp110306 на rplab.ru Wed Sep 17 19:13:46 2014 From: tmp110306 на rplab.ru (Sergey Maslennikov) Date: Wed, 17 Sep 2014 19:13:46 +0400 Subject: [Ph14m 2] =?utf-8?b?0KHQv9C40YHQvtC6INCz0YDRg9C/0L/Riw==?= Message-ID: <1410966826.13820.76.camel@sn-y510p> Пришлите, пожалуйста, полный список вашей группы. СН 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: [Ph14m 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 30 16:08:03 2014 From: tmp110306 на rplab.ru (Sergey Maslennikov) Date: Tue, 30 Sep 2014 16:08:03 +0400 Subject: [Ph14m 4] =?utf-8?b?0JfQsNC00LDQvdC40LUgMQ==?= Message-ID: <1412078883.2622.99.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 18:21:10 2014 From: tmp110306 на rplab.ru (Sergey Maslennikov) Date: Tue, 30 Sep 2014 18:21:10 +0400 Subject: [Ph14m 5] =?utf-8?b?0JfQsNC00LDQvdC40LUgMg==?= Message-ID: <1412086870.9085.1.camel@sn-y510p> ЗАДАНИЕ 2 Определить константы a, b типа double; Определить константу c, являющуюся суммой a и b; Вывести текстом в стандартный выходной поток значения констант a, b и c. ДЛЯ РЕШЕНИЯ ИЗУЧИТЬ: Типы данных и, в частности, тип double; Отличие констант от обычных переменных; Руководство (man 3 printf) к 'printf' -- обратить особенное внимание на спецификаторы типов данных. ОЦЕНКА Решение первым -- 4; Решение в аудитории 30.09.2014 -- 3; Решение с защитой в аудитории -- 2; СН From tmp110306 на rplab.ru Tue Oct 7 16:54:48 2014 From: tmp110306 на rplab.ru (Sergey Maslennikov) Date: Tue, 07 Oct 2014 16:54:48 +0400 Subject: [Ph14m 6] =?utf-8?b?0JfQsNC00LDQvdC40LUgMw==?= Message-ID: <1412686488.3375.27.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; Решение в аудитории 07.10.2014 -- 4; Решение с защитой в аудитории -- 3; СН From tmp110306 на rplab.ru Tue Oct 7 17:46:00 2014 From: tmp110306 на rplab.ru (Sergey Maslennikov) Date: Tue, 07 Oct 2014 17:46:00 +0400 Subject: [Ph14m 7] =?utf-8?b?0JfQsNC00LDQvdC40LUgNA==?= Message-ID: <1412689560.3375.33.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; Решение в аудитории 07.10.2014 -- 5; Решение с защитой в аудитории -- 3; СН From tmp110306 на rplab.ru Tue Oct 14 16:48:47 2014 From: tmp110306 на rplab.ru (Sergey Maslennikov) Date: Tue, 14 Oct 2014 16:48:47 +0400 Subject: [Ph14m 8] =?utf-8?b?0JfQsNC00LDQvdC40LUgNQ==?= Message-ID: <1413290927.5844.7.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; Решение в аудитории 14.10.2014 -- 8; Решение с защитой в аудитории -- 5; СН