Основные операторы языка с

Лабораторная работа №1

Структура программы, текстовый ввод-вывод

Цель работы: изучение структуры программы и операторов ввода/вывода языка С++, а также приобретение навыков их использования.

Задание к лабораторной работе

1. Ознакомиться со структурой программы, операторами ввода с клавиатуры и вывода информации на экран;

2. Выполнить последовательно все пункты, указанные в разделе «Ход работы»;

3. Оформить отчет.

Ход работы

1. Написать простейшую программу на языке «Си», которая ничего не делает, но компилируется и запускается. Выглядит она так:

/* Тут будет информация о программе,

* авторе и дате выполнения

*/

void main () {

//тут будет код программы

}

Запустить программу, проверить ее работоспособность, откомпилировать ее в исполняемый exe-файл, используя разные виды моделей, запустить exe-файл. Указать размер файла в байтах.

2. Объявить несколько переменных разного типа, окомпилировать программу, убедиться, что отсутствуют ошибки.

3. Подключить библиотеки «stdio.h», «conio.h», «iostream.h». Это делается следующим образом:

#include <stdio.h>

4. Ввести с клавиатуры значение в переменные типа int и float, используя функцию scanf, пример:

scanf(“%f”, &a);

5. Вывести на экран значения этих переменных, используя printf, например

printf(“%f %d”,a,b);

6. Вывести значения переменных, используя все перечисленные ниже возможности строки форматирования.

В строке форматирования все символы, кроме управляющих последовательностей, копируются в итоговую строку без изменений. Признаком начала управляющей последовательности является символ «%» (процент), для вывода самого знака «%» используется его удвоение «%%».

Управляющая последовательность имеет вид:

%[флаги][ширина][.точность]тип

Флаги

«-» (дефис, минус): выводимое значение выравнивается по левому краю в пределах минимальной ширины поля, если не указано, то по правому.

«+» (плюс): всегда указывать знак (плюс или минус) для выводимого десятичного числового значения, если не указан, то только для отрицательных чисел

пробел: помещать перед результатом пробел, если первый символ значения не знак, в противном случае вывод будет начинаться с цифры. Символ «+» имеет больший приоритет, чем пробел. Используется только для десятичных числовых значений.

«0» (ноль): дополнять поле до ширины, указанной в поле «ширина управляющей последовательности», символом 0, иначе функция будет дополнять пробелами. Используется для типов d, i, o, u, x, X, a, A, e, E, f, F, g, G. Для типов d, i, o, u, x, X, если точность указана, этот флаг игнорируется. Для остальных типов поведение не определено.

«Ширина» (десятичное число или символ звёздочка) указывает минимальную ширину поля (включая знак для чисел). Если представление величины больше, чем ширина поля, то запись выходит за пределы поля (например, %2i для величины 100 даст значение поля в три символа), если представление величины менее указанного числа, то оно будет дополнено, по умолчанию, пробелами справа, поведение может меняться предшествующими флагами. Если в качестве ширины указана звёздочка, ширина поля указывается в списке аргументов перед значением для вывода (например, printf( "%0*x", 8, 15 ); выведет текст 0000000f).

«Точность» указывает на минимальное количество символов, которое должно появиться при обработке типов d, i, o, u, x, X; на минимальное количество символов, которое должно появиться после десятичной запятой (точки) при обработке типов a, A, e, E, f, F; на максимальное количество значащих символов для типов g и G; и на максимальное число символов, которые будут выведены для типа s.

«Тип» может быть одним из перечисленных:

«d», «i» — десятичное знаковое число. По умолчанию записывается с правым выравниванием, знак пишется только для отрицательных чисел;

«o» — восьмеричное беззнаковое число;

«u» — десятичное беззнаковое число;

«x» и «X» — шестнадцатеричное число, «x» использует маленькие буквы (abcdef), «X» большие (ABCDEF);

«f» и «F» — числа с плавающей точкой.

«e» и «E» — числа с плавающей точкой в экспоненциальной форме записи (вида 1.1e+44); e выводит символ «e» в нижнем регистре, E — в верхнем (3.14E+0);

«g» и «G» — число с плавающей запятой; форма представления зависит от значения величины (f или e);

«c» — вывод символа с кодом, соответствующим переданному аргументу;

«s» — вывод строки с нулевым завершающим байтом;

«%» — символ для вывода знака процента (%), используется для возможности вывода символов процента в строке printf, всегда используется в виде %%.

7. Опробовать арифметические операции («+», «-», «*», «/», «+=», «-=», «/=», «*=», «++», «--») и функции («sin», «cos», «sqrt» и другие). Ввод и вывод организовать с помошью «scanf» и «printf».

8. Выполнить операции ввода и вывода с использованием потоков C++, подключив заголовочный файл «iostream».

Лабораторная работа №2

ОСНОВНЫЕ ОПЕРАТОРЫ ЯЗЫКА С

Цель работы: изучение основных операторов языка Си и приобретение навыков их использования.

Задание к лабораторной работе

1. Ознакомиться с основными конструкциями языка и особенностями их использования;

2. Выполнить последовательно все пункты, указанные в разделе «Ход работы»;

3. Написать программу в соответствии с выданным вариантом задания (см. раздел «Варианты заданий»);

4. Оформить отчет.

Ход работы

1. Изучить операцию условия «?:». Написать программу, решающую практическую задачу с помощью нескольких операций условия (3 и более). Пример программы, находящей максимум из двух чисел:

void main () {

int a,b;

scanf (“%d”,&a);

scanf (“%d”,&b);

c=(a>b)?a:b;

printf(“Максимальное чило: %d”,c);

}

2. Изучить оператор условия «if…else». Написать программу, полученную в п.1, используя оператор условия. Пример программы, находящей максимум из двух чисел, с оператором условия:

void main () {

int a,b;

scanf (“%d”,&a);

scanf (“%d”,&b);

if (a>b) {

c=a;

printf(“Максимальное: a ”);

} else {

c=b;

printf(“Максимальное: b ”);

}

printf(“ %d”,c);

}

3. Изучить логические операции (и «&&», или «||», не «!»). Написать программу, использующую все логические операции в условиях.

Пример программы, использующей одну логическую операцию:

voin main () {

char a,b;

printf(“Тепло? (Y/N)”);

scanf(“%c”,&a);

printf(“Сыро? (Y/N)”);

scanf(“%c”,&b);

if (a == “Y” && b == “Y”) {

printf (“Весна”);

} else {

if (a == “Y” && b == “N”) {

printf(“Лето”);

} else {

if (a == “N” && b == “Y”) {

printf (“Осень”);

} else {

printf (“Зима”);

}

}

}

}

4. Изучить оператор цикла for. Написать программу с использованием этого оператора (например, нахождение максимального из 10 чисел).

void main () {

int a,max;

printf(“\nВведите число :”);

scanf(“%d”,max);

for (i=1;i<10;i++) {

printf(“\nВведите число :”);

scanf(“%d”,a);

if (a>max) max=a;

}

printf(“Максимальное число%d: ”, max);

}

5. Изучить другие операторы циклов. Изменить предыдущую программу, используя вместо оператора for другие операторы. Циклы типа «while» строятся следующим образом:

while (условие повторения) {

операторы

}

do {

операторы

} while (условие повторения);

6. Изучить оператор switch. Написать программу с использованием этого оператора (например, модифицировать программу из пункта 3).

Варианты заданий

1. Написать программу вычисления определителя N-го порядка (N<=10).

2. Имеется три числа, являющиеся коэффициентами квадратного уравнения вида

a*x+b*x+c=0.

Необходимо определить основные характеристики соответствующей параболы: координаты точки экстремума, координаты точек пересечения с осями, тип экстремума (минимум или максимум).

3. Сравнить скорость сходимости (число слагаемых для достижения заданной точности) следующих разложений числа π:

π=4(1-1/3+1/5-1/7+1/9-…);

π=3+4(1/(2*3*4)-1/(4*5*6)+1/(6*7*8)-…).

4. Сколько сомножителей надо взять в произведении П(1+(-1)k/(2k+1))=√2/2 (k изменяется от 1 до ∞), чтобы равенство выполнялось с заданной погрешностью.

5. Написать программу, реализующую простейшую игру «Угадай число».

6. Числа х1, х2, … последовательно поступают с устройства ввода. Все числа хранить в памяти нет необходимости, после ввода каждого числа нужно вычислить и напечатать среднее значение всех введенных чисел. Признаком конца последовательности служит 0.

7. Для заданных m и n вычислить число сочетаний из n по m по формуле

основные операторы языка с - student2.ru

8. В учебном заведении задано начало учебного дня, продолжительность урока, продолжительность перемены, и количество уроков. Получить расписание звонков на весь учебный день.

9. Фирма ежегодно на протяжении n лет закупала оборудование стоимостью s1, s2,…, sn рублей в год. Ежегодно все имеющееся оборудование уценяется на р%. Определить общую стоимость оборудования за n лет.

10. У гусей и кроликов вместе 2n лап. Сколько может быть гусей и кроликов (вывести все возможные сочетания).

11. В последовательности чисел, вводимой с клавиатуры, подсчитать количество отрицательных и сумму положительных чисел. Хранить элементы последовательности в памяти нет необходимости.

12. В последовательности чисел, вводимой с клавиатуры, подсчитать количество смен знака. Хранить элементы последовательности в памяти нет необходимости.

13. В последовательности, состоящей из 0 и1, подсчитать максимальное количество подряд стоящих 1. Хранить элементы последовательности в памяти нет необходимости.

14. В последовательности чисел, вводимой с клавиатуры, определить значение и номер самого большого и самого маленького числа. Хранить элементы последовательности в памяти нет необходимости.

15. Вычислить и вывести на экран в виде таблицы значения функции F на интервале от хнач до хкон с шагом dx

основные операторы языка с - student2.ru

A,b,c – вещественные числа.

16. В последовательности чисел, вводимой с клавиатуры, вычислить произведение элементов с четными номерами. Хранить элементы последовательности в памяти нет необходимости.

17. В последовательности чисел, вводимой с клавиатуры, подсчитать суммы элементов, стоящих до и после первого отрицательного элемента. Хранить элементы последовательности в памяти нет необходимости.

18. В последовательности, состоящей из 0 и 1, подсчитать количество переходов из 0 в 1. Хранить элементы последовательности в памяти нет необходимости.

19. Определить является ли вводимая с клавиатуры последовательность упорядоченной. Хранить элементы последовательности в памяти нет необходимости.

20. Определить является ли вводимая с клавиатуры последовательность арифметической или геометрической прогрессией. Хранить элементы последовательности в памяти нет необходимости.


Наши рекомендации