Символ
формата
|
Тип выводимого объекта
|
%с char
%s строка
%d int
%o int (
в восьмеричном виде )
%u unsigned int
%x int ( в
шестнадцатеричном виде )
%ld long ( в
десятичном виде )
%lo long ( в восьмеричном
виде )
%lu unsigned long
%lx long ( в
шестнадцатеричном виде )
%f float/double ( c
фиксированной точкой)
%e float/double ( в
экспоненциальной форме )
%g float/double ( в
виде f или е в зависимости от значения )
%lf long float ( c
фиксированной точкой )
%le long float ( в
экспоненциальной форме )
%lg long float ( в
виде f или е в зависимости
от значения )
Оператор
scanf: ввод с клавиатуры
Оператор scanf является
одной из многих функций ввода, имеющихся во внешних библиотеках.
Каждой вводимой
переменной в строке функции scanf должна соответствовать спецификация. Перед
именами переменных необходимо оставить символ &. Этот символ означает
"взять адрес".
Пример:
#include<stdio.h>
main()
{
int weight,
/*вес*/
height;
/*рост*/
printf("
Введите ваш вес: ");
scanf("%d",
&weight);
printf("
Введите ваш pocт: ");
scanf("%d",
&height);
printf("\n\nВес
= %d, рост = %d\n",
weight,height);
}
Задание:
Составить и распечатать
программу вывода на экран своих анкетных данных различного типа: - вводимых с
клавиатуры,
- с помощью директивы define,
- инициализированных при описании.
Лабораторная
работа 3
Операторы
и операции
(2 часа)
Цель работы: Изучение арифметических, логических
операций и операций отношения и присваивания.
Основу языка (Турбо) Си
составляют операторы. Оператором-выражения называют выражение, вслед за которым
стоит точка с запятой. В (Турбо) Си точки с запятой используются для разделения
операторов. Принято группировать все операторы в следующие классы:
присваивания, вызов функции, ветвления и цикла.
В операторе присваивания
используется операция присваивания = ,
Например:
c = a * b;
Действие такого
оператора можно описать следующими словами: " с присваивается значение а,
умножение на b ". Значение, присваиваемое переменной с, равняется
произведению текущих значений переменных а и b.
Операторы часто
относятся более чем к одному из четырех классов.
Например:
оператор:
if ( ( c =
cube( a * b ) ) > d )
...
составлен из представителей
следующих классов: присваивания, вызов функции, и ветвление.
К понятию оператора
вплотную примыкает понятие операции.
Различают следующие
группы операций (Турбо) Си : арифметические операции, операции отношения,
операции присваивания, логические операции, побитовые операции, операция
вычисления размера (sizeof) и операция следования (запятая).
Арифметические
операции
К арифметическим
операциям относятся: сложение (+), вычитание (-), деление (/) , умножение (*) и
остаток (%). Все операции (за исключением остатка) определены для переменных
типа int , char , float. Остаток не определен для переменных типа float. Все
арифметические операции с плавающей точкой производятся над операндами двойной
точности.
Операции отношения
В языке определены
следующие операции отношения: проверка на равенство (==), проверка на
неравенство (!=), меньше (<), меньше или равно (<=), больше (>),
больше или равно (>=).
Все перечисленные
операции вырабатывают результат типа int. Если данное отношение между
операндами истинно, то значение этого целого - единица, а если ложно, то нуль.
Все операции типа
больше-меньше имеют равный приоритет, причем он выше , чем приоритет операций
== и !=. Приоритет операции присваивания ниже приоритета всех операций
отношений. Для задания правильного порядка вычислений используются скобки.
Логические операции
В языке имеются три
логические операции:
&& операции И
(and)
|| операции ИЛИ (or)
! отрицание
Аргументами логических
операций могут быть любые числа, включая задаваемые аргументами типа char.
Результат логической операции-единица, если истина, и нуль, если ложь. Вообще
все значения, отличные от нуля, интерпретируются как истинные.
Логические операции
имеют низкий приоритет, и поэтому в выражениях с такими операциями скобки
используются редко.
Вычисление выражений,
содержащих логические операции, производится слева направо и прекращается
(усекается), как только удается определить результат. Если выражение составлено
из логических утверждений (т.е. выражения, вырабатывающие значения типа int),
соединенных между собой операцией И (&&), то вычисление выражения
прекращается, как только хотя бы в одном логическом утверждении вырабатывается
значение нуль. Если выражение составлено из логических утверждений, соединенных
между собой операцией ИЛИ (||), то вычисление выражения прекращается, как
только хотя бы в одном логическом утверждении вырабатывается ненулевое
значение.
Вот несколько примеров,
в которых используются логические операции:
if( i > 50 &&
j == 24)
...
if( value1
< value2 && (value3 > 50 || value4 < 20) )
...
К операциям присваивания
относятся =, +=, -=, *= и /=, а также префиксные и постфиксные операции ++ и
--. Все операции присваивания присваивают переменной результат вычисления
выражения. Если тип левой части присваивания отличается от типа правой части,
то тип правой части приводится к типу левой.
В одном операторе
операция присваивания может встречаться несколько раз. Вычисления производятся
справа налево.
Например:
a = ( b = c ) * d;
Вначале переменной d
присваивается значение с, затем выполняется операция умножения на d, и
результат присваивается переменной а.
Операции +=, -=, *= и /=
являются укороченной формой записи операции присваивания. Их применение
проиллюстрируем при помощи следующего описания:
a += b
означает a = a + b.
a -= b
означает a = a - b.
a *= b
означает a = a * b.
a /= b
означает a = a / b.
Префиксные и постфиксные
операции ++ и -- используют для увеличения (инкремент) и уменьшения (декремент)
на единицу значения переменной.
Семантика указанных
операций следующая:
++a
увеличивает значение переменной а на единицу до использования этой переменной в
выражении.
а++
увеличивает значение переменной а на единицу после использования этой
переменной в выражении.
--a
уменьшает значение переменной а на единицу до использования этой переменной в
выражении.
a--
уменьшает значение переменной а на единицу после использования этой переменной
в выражении.
Операцию sizeof (размер)
можно применить к константе, типу или переменной. В результате будет получено
число байтов, занимаемых операндом.
Например:
printf (
"\nРазмер памяти под целое %d", sizeof( int) );
printf (
"\nРазмер памяти под cимвол %d", sizeof( сhar) );
Задание: Cоставить и распечатать программу,
использующую оператор присваивания, арифметические операции и операцию sizeof.
Лабораторная
работа 4
Функции
(2 часа)
Цель работы: Изучение логической организации
программы и простейшее использование функций в Турбо Си.
Процесс разработки
программного обеспечения предполагает разделение сложной задачи на набор более
простых задач и заданий. В (Турбо) Си поддерживаются функции как логические
единицы (блоки текста программы) , служащие для выполнения конкретного задания.
Важным аспектом
разработки программного обеспечения является функциональная декомпозиция.
Функции имеют нуль или
более формальных параметров и возвращают значение скалярного типа, типа void
(пусто) или указатель. При вызове функции значения, задаваемые на входе, должны
соответствовать числу и типу формальных параметров в описании функции. Если
функция не возвращает значения (т.е. возвращает void), то она служит для того,
чтобы изменять свои параметры (вызывать побочный эффект) или глобальные для
функции переменные.
Например, функция, возвращающая куб ее
вещественного аргумента:
double cube(
double x )
{
return x * x
* x ;
}
Аргумент х типа double
специфицируется вслед за первой открывающей скобкой. Описание extern ,
помещаемое в функцию main , является ссылкой вперед , позволяющей использовать
функцию cube в функции main. Ключевое слово extern можно опускать, но сама
ссылка вперед на описание функции является обязательной.
Логическая
организация простой программы на Турбо Си.
(Турбо) Си предоставляет
необычайно высокую гибкость для физической организации программы или
программной системы.
В табл.1 показана
типичная организация небольшой программы на (Турбо) Си.
/* Заголовки и комментарии, описывающие
программу */
/* Директивы include */
#include имя_файла_1
...
#include имя_файла_n
/* Макро */
#define макро_1 значение_1
...
#define макро_n значение_n
/* Описание глобальных переменных */
тип_данных глобальная_переменная_1;
...
тип_данных глобальная_переменная_n;
main()
{
/* описание extern, обеспечивающие ссылку
вперед на функции и используемые в теле функции
main */
/* Описание локальных переменных */
тип_данных локальная_переменная_1;
...
тип_данных локальная_переменная_m;
/* Тело функции main */
...
}
/* Функции, используемые в программе main
*/
Тип_данных имя_функции_1( формальные
параметры )
{
/* Описание extern, обеспечивающее ссылку
вперед на функции и используемые в теле данной функции */
/* Описание локальных переменных */
тип_данных локальная_переменная_1;
...
тип_данных локальная_переменная_u;
/* Тело функции - 1 */
...
}
...
Тип_данных имя_функции_n( формальные
параметры )
{
/* Описание extern, обеспечивающая ссылку
вперед на функции и используемые в теле данной
функции n */
/* Описание локальных переменных */
тип_данных локальная_переменная_1;
...
тип_данных локальная_переменная_r;
/* Тело функции n */
...
}
Cтруктура каждой функции
совпадает со структурой главной программы (main). Поэтому функции иногда еще
называют подпрограммами.
Подпрограммы решают
небольшую и специфическую часть общей задачи.
Задание:
Составить и распечатать программу, вычисляющую кубы чисел, заданных разными
способами.
Лабораторная
работа 5
Типы
констант. Использование констант в (Турбо) Си
(2 часа)
Цель работы: Изучение использования констант
различных типов в Турбо Си.
В языке (Турбо) Си
имеются четыре типа констант: целые, вещественные (с плавающей точкой),
символьные и строковые.
Константы целого
типа
Константы целого типа
могут задаваться в десятичной, двоичной, восьмеричной или шестнадцатеричной
системах счисления.
Десятичные целые
константы образуются из цифр. Первой цифрой не должен быть нуль.
Восьмеричные константы
всегда начинаются с цифры нуль, вслед за которой либо не стоит ни одной цифры,
либо стоят несколько цифр от нуля до семерки.
Шестнадцатеричные
константы всегда начинаются с цифры нуль и символа х или Х, все, за которыми
может стоять одна или более шестнадцатеричных цифр.
Шестнадцатеричные цифры
- это десятичные цифры от 0 до 9 и латинские буквы: a, b, c, d, e, f, или A, B,
C, D, E, F.
Например: задание
константы 3478 в десятичном, восьмеричном и шестнадцатеричном виде:
int a =
3478,
b = 06626,
c = 0хD96;
К любой целой константе
можно справа приписать символ l или L, и это будет означать, что константа -
длинная целая (long integer). Символ u или U, приписанный к константе справа,
указывает на то, что константа целая без знака (unsigned long).
Считается, что значение
любой целой константы всегда неотрицательно. Если константе предшествует знак
минус, то он трактуется как операция смены знака, а не как часть константы.
Константы
вещественного типа
Константы с плавающей
точкой (называемые вещественными) состоят из цифр, десятичной точки и знаков
десятичного порядка е или Е. Ниже приведены все возможные варианты записи
констант вещественного типа:
1. 2e1 .1234
.1e3
.1 2E1 1.234
0.0035e-6
1.0 2e-1
2.1e-12 .234
Cимвольные
константы
Cимвольные константы
заключаются в апострофы (кавычки). Все символьные константы имеют в (Турбо) Си
значение типа int (целое), совпадающее с кодом символа в кодировке ASCII.
Одни символьные
константы соответствуют символам, которые можно вывести на печать, другие -
управляющим символам, задаваемым с помощью esc - последовательности, третьи -
форматирующими символами, также задаваемым с помощью esc - последовательности.
Например:
символ " апостроф
" задается как '\'', переход на новую
строку - как '\', а
обратный слэш - как '\\'.
Каждая esc -
последовательность должна быть заключена в кавычки.
Управляющие коды
\n Новая строка
\t Горизонтальная
табуляция
\v Вертикальная
табуляция
\b Возврат на символ
\r Возврат в начало
строки
\f Прогон бумаги до
конца страницы
\\ Обратный слэш
\' Одинарная кавычка
\" Двойная кавычка
\а Звуковой сигнал
\? Знал вопроса
\ddd Код символа в ASCII
от одной до трех восьмеричных цифр
\xhhh
Код символа в ASCII от одной до трех шестнадцатеричных цифр.
Строковые константы
Строковые константы
состоят из нуля или более символов, заключенных в двойные кавычки. В строковых
константах управляющие коды задаются с помощью esc - последовательности.
Обратный слэш используется как символ переноса текста на новую строку.
Пример описания строковых констант:
# include <stdio.h>
main( )
{
char *str1, *str2;
str1=“ Пример использования\n\n”;
str2=“строковых\
констант.\n\n”;
printf(str1);
printf(str2);
}
Программа выведет следующий текст:
Пример использования
строковых констант.
Задание:
Написать и
распечатать программу, выводящую на экран строковую константу и число,
состоящее из цифр вашего дня рождения, заданное в виде десятичной, восьмеричной
и шестнадцатеричной константы.
Лабораторная
работа 6
Управляющие
структуры (Турбо) Си
(2 часа)
Цель работы: Изучение приемов использования
операторов ветвления и операторов циклов в Турбо Си.
Управляющие структуры или
операторы управления служат для управления последовательностью вычислений в
программе. Операторы ветвления и циклы позволяют переходить к выполнению другой
части программы или выполнять какую-то часть программы многократно, пока
удовлетворяется одно или более условий .
Блоки и составные
операторы.
Любая последовательность
операторов, заключенная в фигурные скобки, является составным
оператором(блоком). Составной оператор не должен заканчиваться (;), поскольку
ограничителем блока служит сама закрывающаяся скобка. Внутри блока каждый
оператор должен ограничиваться (;).
Составной оператор может
использоваться везде, где синтаксис языка допускает применение обычного
оператора.
Пустой оператор.
Пустой оператор
представляется символом (;), перед которым нет выражения. Пустой оператор
используют там, где синтаксис языка требует присутствия в данном месте
программы оператора, однако по логике программы оператор должен отсутствовать.
Необходимость в использовании
пустого оператора часто возникает, когда действия, которые могут быть выполнены
в теле цикла, целиком помещаются в заголовке цикла.
Операторы
ветвления.
К операторам ветвления относятся if,
if else, ?,switch и go to. Общий вид операторов ветвления следующий:
if
(логическое выражение)
оператор;
-------------------------------------------------------------------
if
(логическое выражение)
оператор_1;
else
оператор_2;
-------------------------------------------------------------------
<логическое
выражение> ? <выражение_1> : <выражение_2>;
Если значение логического выражения
истинно, то вычисляется выражение_1, в противном случае вычисляется
выражение_2.
-------------------------------------------------------------------
switch
(выражение целого типа)
{
case
значение_1:
последовательность_операторов_1;
break;
case
значение_2:
последовательность_операторов_2;
break;
.
. .
case
значение_n:
последовательность_операторов_n;
break;
default:
последовательность_операторов_n+1;
}
Ветку default можно не
описывать. Она выполняется, если ни одно из вышестоящих выражений не
удовлетворено.
-------------------------------------------------------------------
Оператор цикла.
В Турбо Си имеются
следующие конструкции, позволяющие программировать циклы: while, do while и
for. Их структуру можно описать следующим образом:
while( логическое выражение)
оператор;
Цикл с проверкой условия
наверху
--------------------------------------------------------------
do
оператор;
while (логическое выражение);
Цикл с проверкой условия
внизу
--------------------------------------------------------------
for (инициализация, проверка, новое_значение)
оператор;
----------------------------------------------------------------
Задание:
1. Составить и получить распечатку
программы выбора всех четных чисел от 1 до 1000.
2. Составить и получить распечатку
программы выбора всех нечетных чисел от 1 до 1000.
3. Составить и получить распечатку
программы выбора всех чисел, заканчивающихся на цифру 5, от 1 до 1000.
4. Составить и получить распечатку
программы выбора всех чисел, заканчивающихся на цифру 2, от 1 до 1000.
5. Составить и получить распечатку
программы выбора всех чисел, заканчивающихся на цифру 3, от 1 до 1000.
6. Составить и получить распечатку
программы выбора всех чисел, заканчивающихся на цифру 4, от 1 до 1000.
Лабораторная
работа 7
Массивы в
ТС++
(2 часа)
Цель
работы:
Изучение приемов объявления и обращения к массивам, использования функций и
директивы define при работе с массивами.
Массивы -
это набор объектов одинакового типа, доступ к которым осуществляется прямо по
индексу в массиве. Обращение к массивам в (Турбо) Си осуществляется и с помощью
указателей .
Массивы
можно описывать следующим образом:
тип_данных
имя_массива [ размер массива ];
Используя
имя массива и индекс, можно адресоваться к элементам массива:
имя_массива
[ значение индекса ]
Значения
индекса должны лежать в диапазоне от нуля до величины, на единицу меньшей, чем
размер массива, указанный при его описании.
Вот
несколько примеров описания массивов:
char name [
20 ];
int grades [
125 ];
float income
[ 30 ];
double
measurements [ 1500 ];
Первый из
массивов ( name ) содержит 20 символов. Обращением к элементам массива может
быть name [0], name [1], ...,name[19].
Второй
массив ( grades ) содержит 125 целых чисел. Обращением к элементам массива
может быть grades [0],grades [1],...,grades[124].
Третий массив
( incom ) содержит 30 вещественных чисел. Обращением к элементам массива может
быть income [0], incom[1],...,income[29].
Четвертый
массив (measurements ) содержит 1500 вещественных чисел с двойной точностью.
Обращением к элементам массива может быть
measurements[0],measurements[1],...,measurements[1499].
/* Программа, иллюстрирующая использование массивов */
/*Файл array.с*/
#include <stdio.h>
#define size 1000
int data [size];
main ( )
{
extern float average (int a[ ], int s );
int i;
for ( i=0; i<size ; i++_)
data [ i ]= i;
printf ( “\nСреднее значение массива data
=%f\n”,average (data,size));
}
float average (int a[ ] ,int s )
{
float sum=0.0;
int i;
for ( i=0; i<s ; i ++)
sum+=a[ i ];
return sum/s;
}
В программе
заводится массив на 1000 целых чисел. При помощи функции average подсчитывается
сумма элементов этого массива. Первым формальным параметром функции average
является массив. В качестве второго параметра функции передается число
суммируемых значений в массиве a. Обратите внимание на использование константы
size (размер). Если изменяется размерность массива, задаваемая этой константой,
то это не приводит к необходимости менять что-либо в самом коде программы.
Задание:
Составить и
распечатать программу, решающую задачу вычисления максимального и минимального
значений с использованием функций max и min. В качестве входных значений для
указанных функций задаются массив чисел с плавающей точкой и размер такого
массива.
ИТОГОВЫЕ КОНТРОЛЬНЫЕ ЗАДАНИЯ.
1.
Построить 10 вложенных квадратов окрашенных поочередно в зеленый и красные
цвета.
2.
Получить в центре экрана изображение, состоящее из 10 вложенных квадратов со
сторонами 10,20,30,...,100 :
3.
Вывести на экран 2 прямоугольника. Один заштриховать
вертикальными
прямыми, другой - горизонтальными:
4.Построить прямоугольник со сторонами
30 и 50, центр которого совмещен с центром экрана. Стороны прямоугольника
должны быть параллельны сторонам экрана.
5.С помощью рассмотренных графических
операторов можно получать на экране изображения, состоящие не целиком из
окружностей, а из их частей. Написать программу, выполняющую построение
красного полумесяца, а также программы, выполняющие построение фигур,
показанных на рисунке (фигуры закрашиваются зеленым цветом).
6.Дано 6 целых чисел, определяющих
положение вершин треугольника, расположенного в левой половине экрана.
Построить на экране этот треугольник, а также треугольник, симметричный данному
относительно вертикальной прямой, проходящей через середину экрана.
7.Четыре целых числа задают положение
концов отрезков на экране. Получить изображение этого отрезка и изображение
отрезка, центрально-симметричного данному относительно точки, расположенной в
центре экрана.
8.Получить в центре экрана изображение,
состоящее из 9 вложенных квадратов и раскрасить его 3 цветами.
9.Построить 9 концентрических
окружностей, окрашенных поочередно в зеленый, красный и коричневый цвета.
1.Транспонированием
квадратной матрицы называется такое ее преобразование, при котором строки и
столбцы меняются ролями: i-й столбец становится i-й строкой. Например,
транспонирование матрицы:
0 1 2 0 3 6
3 4 5 дает матрицу 1 4 7
6 7 8 2 5 8
Дана квадратная матрица размера n*n.
Получить транспонированную матрицу.
2.Таблица круга футбольного чемпионата,
в котором участвовало n команд, задана своей верхней правой частью: первые n
чисел данной последовательности С1,С2,... относятся к первой строке таблицы,
следующие n-1 чисел - ко второй и т.д. Построить всю таблицу целиком.
3.Шахматную
доску будем представлять символьной матрицей размера 8*8. Даны натуральные р и
q (1<=p<=8,1<=q<=8)- но 8 мера вертикали и горизонтали,
определяющие местоположение ферзя. Соответствующий элемент матрицы надо
положить равными символу Ф. Поля, находящиеся под угрозой ферзя, надо положить
равными символу *, а остальные поля - символу 0. Строки матрицы вывести одну
под другой. Решить аналогичную задачу для коня.
1.Дана действительная матрица (xij)
размера m*n; упорядочить (переставить) строки матрицы:
а) по неубыванию сумм элементов строк,
б) по неубыванию наименьших элементов строк,
в) по невозрастанию наибольших элементов.
УКАЗАНИЕ: Определить числовой массив: b1,...,bm,
положив равным, соответственно, сумме элементов i-й строки, наименьшему
элементу i-й строки, наибольшему элементу i-й строки. Можно вместо массива:
b1,...,bm рассмотреть дополнительный столбец x1n+1, x2n+1,...,xmn+1.
2.В данной целочисленной квадратной
матрице размером n*n (n-некоторая константа) указать индексы всех элементов,
имеющих наибольшее значение.
3.Дано: натуральные x1,y1,...,x10,y10,
целочисленная матрица (aij) (i=1,...,10,j=1,...,10). Последовательность
x1,y1,...,x10, y10 задает положение 10 точек на экране. Матрица указывает, как
точки соединены между собой: aij=1, или i-я точка соединена с j-й и aij=0 в
противном случае (aij=aji). Получить на экране точки, заданные
последовательностью x1,y1,...,x10,y10 и соединить их так, как указано в данной
матрице.
4.Дана
целочисленная квадратная матрица (aij) размера 7*7..
Получить
b1,...,b7, где bi- это:
а)
наименьшее из значений элементов, находящихся в начале i-й
строки
матрицы до элемента aii включительно,
б)
значение 1 по порядку положительного элемента i-й строки
(
если таких элементов нет, то принять bi=-1. )
5.Дана действительная квадратная
матрица размера n*n. Получить x1xn+x2xn-1+...+xnx1, где xk- наибольшее значение
элементов k-го столбца данной матрицы.
1.Написать программу, в ходе выполнения
которой круг зеленого цвета, появившись в центре экрана и постепенно расширяясь,
увеличивается в размерах в 3 раза, а затем сжимается до начальных размеров.
2.Даны 3 целых числа, определяющих
положение центра окружности на экране и ее радиус. Если окружность не
пересекает горизонтальную прямую, проходящую через середину экрана, то
высветить данную окружность и окружность, симметричную данной относительно этой
прямой.
3.Написать программу, в ходе выполнения
которой зеленый квадрат, появившись в левом верхнем углу экрана, перемещается
вправо вниз по диагонали.
4.Пропеллер состоит из 2 закрашенных
треугольников. Получить на экране вращающийся пропеллер.
5.Дано 2 натуральных числа. Написать
программу, в ходе выполнения которой отрезок, появившись в левом верхнем углу
экрана, передвинется по экрану так, что его левый конец совместится с точкой,
положение которой определяется данными числами. Весь путь отрезка должен
состоять из 2 участков - горизонтального и вертикального.
6.Дано 8 натуральных чисел x1,y1,l1,h1
и x2,y2,l2,h2. Каждая четверка чисел задает положение на экране прямоугольника
со сторонами, параллельными сторонам экрана. Значения x1,y1 определяет
положение левого нижнего угла прямоугольника с номером i (i=1,2),li-длину
основания, hi-высоту. Построить прямоугольник и закрасить 1-й зеленым цветом,
второй- красным. Если прямоугольники пересекаются, то их общую часть закрасить
коричневым цветом.
7.Дана последовательность, состоящая из
40 натуральных чисел x1,y1,l1,h1,...,x10,y10,l10,h10. Каждая 4-ка чисел
xi,yi,li,hi задает положение прямоугольника на экране. Высветить все прямоугольники
и закрасить их коричневым цветом.
8. Дано 6 целых чисел
x1,y1,x2,y2,x3,y3. Каждая пара xi,yi(i=1,2,3) определяет положение одной из
вершин треугольника на экране. Если данные числа определяют прямоугольный
треугольник, высветить его на экране, в противном случае вывести сообшение_1
треугольник не прямоугольный.
1. Система 10 материальных точек на
плоскости задана с помощью действительных чисел x1,y1,m1,...,x10,y10,m10, где
xi,yi- координаты i-й точки, а mi- ее масса,i=1,...,10. Получить координаты
центра масс (центра тяжести) системы, а также расстояния от центра масс до
каждой из точек системы. Как изменится программа, если исходные данные будут
расположены в следующем порядке: x1,...,x10,y1,...,y10,m1,...,m10 ?
УКАЗАНИЕ:
Координаты центра масс могут быть вычислены по
следующим
формулам:
Хцм= ; Y=;
2.
Даны действительные a1,...a18. Получить:
а)
а1,а10,а2,а11,...,а9,а18,
б)
а1,а18,а2,а17,...,а9,а10,
в)
а1+а18,а2+а17,...,а9+а10.
3.Даны
символы s1,...s17. Получить:
а)
s17,s1,s2,...,s16;
б)
s11,s12,...,s17,s1,s2,...,s10;
в)
s12,s13,...,s17,s11,s10,...,s1.
4.Даны действительные
x1,...,x11,y1,...,y11. Получить действительные x1,...,x11,y1,...,y11,
преобразовав для получения xi,yi члены xi,yi по правилу: если они оба
отрицательны, то каждый из них увеличить на 0.5, если отрицательно только одно
число, то отрицательное число заменить его квадратом, если оба числа
неотрицательны, то каждое из них заменить на среднее арифметическое исходных
значений.
5.Даны
символы s1,....,s80. Определить количество неравенств среди:
а)s1=s41,s2=s42,...,s40=s80;
б)s1=s80,s2=s79,...,s40=s41.
СПИСОК ЛИТЕРАТУРЫ
2.
Уинер Р. Язык Турбо Си: Пер с
англ.-М.: Мир, 1991.-384 с.,ил.
3.
Берри Р., Микинз Б. Язык Си:
введение для программистов: Пер. с англ.-М.:Финансы и статистика, 1988.-с.,ил.
4.
TURBO C++. Borland International.
Inc. 1990.