понедельник, 15 октября 2018 г.

Лабораторная работа Turbo C++ 10

1. Изучить работу примера 1.

1) Что делает функция getc(in)?

2) Объясните, что выполняется в выражении ((fin=fopen("fil01.cpp", "r"))!=NULL).

3) Что делает функция putc(ch, stdout)?

4) Для чего используется функция fclose(fin)?

2. Изучить работу примера 2.

1) Что выполняется в строке #define MAX 100?

2) Объясните, как работает функция fprintf(f ,"%d ", x).

3) Объясните, как работает функция fscanf(f, "%d", &x).

4) Объясните действие выражения !feof(f).

3. Изучить работу примера 3.

1) Что делает функция fgets(string, STR_LENGTH, in)?

2) Что делает функция fputs(strrev(string), out)?

3) Объясните, почему возможна проверка достижения конца файла вида fgets(string, STR_LENGTH, in)!=NULL?

4) Замените вывод printf("%s", string); выводом puts(string);. Объясните, почему происходит такой вывод, и что можно сделать для исправления данной ситуации.

4. Подсчитать количество символов и строк в указанном текстовом файле.

5. Сформировать текстовый файл, записав в него данные о студентах, введенные с клавиатуры, в следующем формате:

<Номер зачетки> <Фамилия> <Имя> <Отчество> <Группа>

Например:

1 Иванов Иван Иванович ПО-10

2 Петров Петр Бетрович ПО-10

7 Баночкин Федор Батькович ПО-11

Лабораторная работа Turbo C++ 09

1. Изучить работу примера 1.

1) Для чего используется предварительная запись в тексте программы заголовков функций и как они называются?

2) Объясните, что означает запись void перед именем функции?

3) Объясните, чем отличается передача массива в функции: void fillarr(int m[], int n); и void printarr(int *m, int n);.

4) Что измениться в работе программы, если в функции swap заголовок будет описан void swap(int a, int b), а не void swap(int *a, int *b)?

2. Изучить работу примера 2.

1) Что такое рекурсия?

2) Выясните, что произойдет при вводе в программу отрицательного целого числа.

3) Что можно сделать в программе, для возможности нахождения НОД и для отрицательных чисел?

4) Как можно реализовать рекурсивную функцию вычисления НОД, не используя тернарную условную операцию?

3. Написать функции подсчета суммы и произведения элементов одномерного массива (к примеру 1).

4. Дано N точек на плоскости. Найти точку, наиболее удаленную от некоторой заданной точки. Для вычисления расстояния между двумя точками использовать функцию.

5. Найти НОД двух чисел, используя рекурсивную функцию нахождения НОД по алгоритму Евклида (делением): НОД двух чисел равен НОД меньшего из них и остатка от деления большего на меньшее, если делится без остатка, то меньшее число и есть НОД.

*. Последовательность чисел Фибоначчи задается соотношениями fib(0)=0, fib (1)=1, fib (i)= fib (i-1)+ fib (i-2), i = 2, 3, ... Напишите программу, запрашивающую с клавиатуры натуральное число n и, используя рекурсивную функцию, печатающую числа Фибоначчи от 0 до n.

Лабораторная работа Turbo C++ 08

1. Изучить работу примера 1.

1) Что произойдет, если убрать подключение заголовочного файла #include <string.h>.

2) Объясните действие оператора int words=strlen(s)!=0;.

3) Объясните действие выражение *pc==32.

4) Предложите реализацию данной задачи без указателей.

2. Изучить работу примера 2.

1) Объясните действие функций strcpy, strchr, strncat, strcat.

2) Объясните, что вычисляет выражение (p-src).

3) Как можно задать начальное значение строке dst, вместо оператора strcpy(dst, "");.

4) Объясните работу (алгоритм) программы.

3. Подсчитать в строке сколько раз встречается указаный символ.

4. Дан текст, выяснить, является ли этот текст десятичной записью целого числа.

5. Дана строка, обернуть ее.

*. Заменить в строке несколько рядом стоящих пробелов на один.

Лабораторная работа Turbo C++ 07

1. Изучить работу примера 1.

1) Объясните действие функций randomize()и random().

2) Объясните, как выполняется обмен элементов, то есть использование переменных цикла i и j.

3) Объясните, как выполняется вывод массива с использованием указателя.

4) Предложите реализацию данной задачи без использования пременной j в цикле обмена элементов.

2. Изучить работу примера 2.

1) Объясните действие операторов p1=&a[0]; и p1=a;.

2) Возможно ли присвоить имени массива значение указателя, то есть выполнить a=p1;?

3) Объясните действие оператора for (p1=a; p1<=&a[4]; ) printf("%d ", *(p1++));.

4) Объясните действие оператора for (p1=a, i=0; i<5; i++) printf("%d ", p1[i]);.

3. Подсчитать в одномерном массиве A(n) целых чисел количество положительных, отрицательных и нулевых элементов.

4. Отсортировать одномерный массив Arr(n) вещественных чисел по убыванию.

5. Найти минимальный и максимальный элементы двумерного массива Mas(nxm).

*. Транспонировать матрицу Matrix(nxn).

Лабораторная работа Turbo C++ 06

1. Изучить работу примера 1.

1) Объясните действие оператора sum+=N%10;.

2) Объясните действие оператора N/=10;.

3) Можно ли решить данную задачу с использование цикла do/while.

4) Предложите реализацию данной задачи с использованием цикла for.

2. Изучить работу примера 2.

1) Объясните действие операции «,» (запятая).

2) Объясните действие оператора sum=0, pr=1, i=1;.

3) Объясните действие оператора sum+=i, pr*=i, i++;.

4) Предложите реализацию решения данной задачи с другой записью оператора for, в которой выражение инициализации (первое выражение for) и выражение приращения (третье выражение for) будут пустыми.

3. Найти цифровой корень натурального числа (складываются все цифры числа, затем все цифры

найденной суммы и т.д. до тех пор, пока не будет получено однозначное число).

4. Написать программу нахождения минимального и максимального из n (n>0) введенных чисел.

5. Вывести все простые числа в интервале от 1 до N.

*. Написать программу, которая выводит десятичное представление введенного с клавиатуры двоичного числа.

Лабораторная работа Turbo C++ 05

1. Изучить работу примера 1.

1) Объясните, как работает макроопределение.

2) Объясните, равнозначно ли действие макроопределения и выражения в комментарии.

3) Обьясните, на что может повлиять, если убрать скобки в макроопределении.

4) Измените программу, используя для поиска минимального и максимального оператор if.

2. Написать программу решения квадратного уравнения a∙x2+b∙x+c = 0.

Дискрименант вычисляется по формуле d = b2 – 4∙a∙c. Если дискрименант больше или равен нулю, то корни можно вычислить по формулам x1 = (-b+√d)/(2∙a) и x2 = (-b–√d)/(2∙a), иначе – нет решения.

3. Определить, попадает ли точка с координатами (X,Y) в заданную область.

clip_image002

4. По номеру дня недели вывести его название.

5. По номеру месяца вывести его название и название времени года.

Лабораторная работа Turbo C++ 04

1. Изучить работу примера 1.

1) Выясните, что изменится в работе программы, если из управляещей строки убрать в спецификаторе %lf модификатор l.

2) Объясните, что такое M_PI.

3) Что необходимо изменить в программе, если убрать модификатор типа long?

4) Что необходимо изменить в программе, если поменять long float на double.

2. Изучить работу примера 2.

1) Объясните действие int const signs=5, width=signs*2;.

2) Объясните, что такое hypot.

3) Объясните назначение * в спецификаторах вывода.

4) Как еще можно вычислить значение гипотенузы.

3. Найти минимальное и максимальное из трех введенных чисел a, b, c.

4. Даны две точки (x1,y1) и (x2,y2). Определить расстояние между ними.

5. Заданы уравнения двух пересекающихся прямых на плоскости: y1=k1x+b1, y2=k2x+b2. Напишите программу, вычисляющую угол между ними в градусах и минутах, используя формулу clip_image001.

Лабораторная работа Turbo C++ 03

1. Изучить работу примера 1.

2. Изучить работу примера 2.

1) Объясните, чем отличается объявление перемнных в функции main() и вне функции, как в примере.

2) Выясните, что изменится в работе программы, если из нее убрать строку #include <math.h>

3) Объясните, чем отличается условие в if от условия в комментарии.

4) Объясните, почему полученное значение среднего геометрического не соответствует верному. Предложите вариант решения данной проблемы.

3. Изучить работу примера 3. Объяснить в чем заключается принцип выполнения префиксной и постфиксной опрации инкремента.

4. Определить число, полученное выписыванием в обратном порядке цифр заданного трехзначного целого положительного числа. Проверить корректность ввода трехзначного числа.

Примечание: при неправильном вводе можно использовать оператор return – завершает выполнение функции.

5. Написать программу перевода значения угла, заданного в градусах, минутах и секундах, в радианы.

Примечание:

Radians = (Grades + Minutes/60 + Seconds/360) * Pi / 180, где

Grades - количество градусов данного угла;
Minutes - количество минут данного угла;
Seconds - количество секунд данного угла;
Radians - переменная отвечающая за величину угла в радианах;

Pi – величина π.

Лабораторная работа Turbo C++ 02

1. Проверьте, как работает пример 1.

1) Измените программу таким образом, чтобы вычислялись сумма, разность, произведение и частное двух чисел. Примечание: частное может быть дробным числом.

2) Выясните, что изменится в работе программы, если из нее убрать строку #include <conio.h>

3) Выясните, что изменится в работе программы, если из нее убрать строки clrscr(); и getch();

4) Выясните, что произойдет, если строку scanf("%d,%d",&a,&b); заменить scanf("%d %d",&a,&b);

2. Объясните, почему в примере 2, полученное значение не соответствует верному. Предложите вариант решения данной проблемы.

3. Вычислить площадь кольца.

clip_image002

4. Вычислить площадь фигуры.

clip_image004

Turbo C++ 01

1. Изучить среду программирования Turbo C++ 3.0 (Borland). Основные принципы работы и возможности среды программирвания Turbo C++ 3.0 аналагичны среде программирования Turbo Pascal 7.0. Описание среды программирования Borland C++ в книге Березин, Березин - Начальный курс C и C++. Глава 1.

2. Изучить теорию практической работы. Ввести и изучить приведенные выше примеры.

3. Вычислить площадь квадрата со стороной a.

4. Вычислить периметр и площадь треугольника со сторонами a, b и c.

База данных Microsoft Access “Управление проектом”

База данных Microsoft Access  “Управление проектом”.

управление проектом