помогите пожалуйста. не могу скачать ms. visual studio |
Переменные и базовые типы данных языка С
Задание 1
- В качестве вводимых символов используйте начальные буквы своей фамилии (латинского алфавита). В отчет вставьте полученный результат.
- В качестве вводимой строки используйте свою фамилию и имя (буквами латинского алфавита). В отчет вставьте полученный результат.
- Подсчитайте количество символов, на которые производит отступ от левого края символ табуляции \t. Для вывода строки предусмотрите табулированный вывод с помощью спецификатора формата %xs, где х – требуемое число позиций отступа.
- Объявите массив символов в размере одного символа и введите строку с помощью функции gets_s(), превышающую число 1.
- Запустите программу без функций _flushall(). В отчет вставьте полученный результат
- Ввод чисел произведите со знаком ("+" и "–"). Введите только целые числа. Введите только вещественные числа.
- Сложите два вещественных числа типа float с десятью знаками после десятичной точки. Выведите и проанализируйте результат сложения. Объясните результат.
- Изучите работу функции puts() и примените ее вместо функции printf(), которая использовалась в режиме сообщений. В отчет вставьте полученный результат. Объясните результат.
Пример 2. Напишите программу вычисления алгебраических выражений с приведением типов char, int, float, double.
Возможный программный код решения примера:
#include <stdio.h> #include <conio.h> #include <math.h> int main (void) { char ch; int a, b; float x; double y, z; ch = 'C'; a = 2; b = 5; x = 5.5F; y = 6.0 ; z = ch + a + b + x + y; // Результат приведения типов printf("\n\t The result of the conversion types: %lf\n", z); // Явное преобразование типов z = (double) ch + (double) a + (double) b + (double) x + y; printf("\n\t The apparent conversion types: %lf\n", z); z = sqrt((double)a/b); printf("\n\t z = sqrt(%d/%d) = %lf\n", a, b, z); printf("\n\t z = lg(%d/%d) = %lf\n", a, b, log10(z)); printf("\n\t z = ln(%d/%d) = %lf\n", a, b, log(z)); printf("\n Press any key: "); _getch(); return 0; }
В программу включена библиотека математических функций math.h, в которой sqrt() – функция извлечения квадратного корня, log10() – логарифмическая функция по основанию 10, log() – функция натурального логарифма. Все эти функции возвращают результат типа double и вычисляют от числа (выражения) также типа double.
Результат выполнения программы показан на рис. 2.3.
Задание 2
- В качестве вводимого символа используйте первую букву своей фамилии (буквами латинского алфавита). В отчет вставьте полученный результат.
- Переменную у задайте в виде у = 6.
- Вычислите заданный квадратный корень без явного приведения типов.
- Определите переменные с суффиксами U, F, L и произведите с ними арифметические действия.
- Вычислите логарифм от числа 10Х по основанию 2Х, где Х – номер компьютера, за которым выполняется лабораторная работа. Выполните тестовый пример для проверки вычислений, т.е. для заданного основания подберите число, от которого логарифм с заданным основанием даст целое число. Например, log10(100.0) = 2.0000.
Пример 3.Напишите программу вычисления площади круга и его длины окружности по заданному радиусу, вводимого пользователем с клавиатуры, а также вывода на консоль максимальных значений чисел типа int, float и double.
Для решения примера следует воспользоваться математической библиотекой компилятора, т. е. включить в программу заголовочный файл <math.h>., а также заголовочные файлы <limits.h>, <float.h>.
Программный код решения примера:
#include <stdio.h> #include <conio.h> // Для числа пи #define _USE_MATH_DEFINES #include <math.h> #include <limits.h> #include <float.h> int main (void) { double R; double Sr, Lr; printf("\n Enter a real greater than zero: "); scanf_s("%lf", &R); Sr = M_PI*R*R; Lr = 2*M_PI*R; printf("\n Area of a circle of radius R = %g is %g", R, Sr); printf("\n The length of a circle of radius R = %g is %g",R,Lr); puts(""); printf("\n Maximum integer: %d\n ", INT_MAX); printf(" Maximum real number of float: %g\n ", FLT_MAX); printf("Maximum real number type double: %g\n ", DBL_MAX); printf("\n Press any key: "); _getch(); return 0; }
В программу включена константа _USE_MATH_DEFINES для работы с числом M_PI ( ). Остальные константы можно найти в справочной документации компилятора. Например, через меню Help Index системы MS Visual Studio 2008.
Функция scanf_s() определена в компиляторе языка С системы MS Visual Studio 2008. С этой функцией компилятор не выдает предупреждений.
Результат выполнения программы показан на рис. 2.4.
Задание 3
- Напишите программу по вычислению площади эллипса. Данные для расчета должны вводиться с клавиатуры пользователем.
- Рассчитайте величины и , пользуясь стандартными функциями математической библиотеки (math.h) .
- Используя справочную документацию компилятора, в программе предусмотреть вывод минимальных значений указанных типов данных.
- Используя справочную документацию компилятора, в программе предусмотреть вывод максимальных и минимальных значений для следующих типов даны: char, short int, long int.
Контрольные вопросы
- Для каких типов данных используются суффиксы при инициализации переменных?
- Чем отличаются функции printf() и puts() при консольном выводе информации?
- Для чего в программах на С используется заголовочный файл math.h?
- При использовании функции gets_s() с какими разделителями может происходить считывание информации с консоли?
- Какой тип данных возвращает функция gets_s() при считывании информации?
- Как осуществляется считывание с консоли информация с помощью функции scanf_s()?
- Как с консоли осуществляется считывание последовательности различных типов данных с помощью одной функции scanf_s()?
- Как выводится на консоль последовательность различных типов данных с помощью одной функции printf()?
- Как осуществляются автоматическое и принудительное приведение типов в языке С?
- Какие машинно-зависимые типы данных имеются в языке С?
- К каким типам данных относятся литеры
5, 5.0, 5.0F, "5", '5', 5u, 5L, 5.0L?