2 (Семинары)
Описание файла
Файл "2" внутри архива находится в папке "Семинары". PDF-файл из архива "Семинары", который расположен в категории "". Всё это находится в предмете "информатика" из 1 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст из PDF
Семинар 2 (1 курс, С)Альтернатива программе №1 (вычисление площади круга):#include <stdio.h>main(){printf("\nПлощадь круга = %f", 3.1415*3.0*3.0);}#include <stdio.h>double area (double);void main(){операторы (объявления, выражения, и.т.п.);}double area (double f){операторы;}Важность определения типа переменной. Память ЭВМ - последовательность ячеек, вкоторых могут находиться нули или единицы (биты):010111011010001001011101Максимальное целое число,представимое одним байтом?Десятичная система 9310 = 93 =3·100 + 9·10110100010байт - на многих машинах это минимальная единицаинформации, которая может быть адресованаДвоичная система 010111012 = 1·20 +0·21 + 1·22 +1·23 +1·24 + 0·25 + 1·26 + 0·27 =9310Максимальное целое число, представимое одним байтом = 11111111 = 28-1 = 25510.Диапазон 0 ÷ 255.Знак кодируется старшим битом.
Отрицательное число хранится в двоично-дополнительномвиде: пример -2: 210 = 0000 00102: инвертируем: 1111 1101: +1 : 1111 1110.Диапазон: -128 ÷ 127.В Си данные целого типа могут занимать различное количество байт. В Visual C++ короткоецелое (short) занимает 2 байта (диапазон -215 ÷ 215-1 для чисел со знаком и 0 ÷ 216-1 ≡ 6553510для чисел без знака (unsigned short), длинное целое (long) занимает 4 байта (диапазон-231 ÷ 231-1).Наряду с целыми числами необходимо хранить и вещественные числа, которые имеютмантиссу и порядок: 0.13·108. В машине вещественное число типа float кодируется так же,как и длинное целое - четырьмя байтами.
Однако смысл их другой: 23 бита отводится намантиссу, 8 бит на порядок и один на знак. Следовательно, та же операция сложения длявещественных чисел выполняется не так, как для целых чисел! => Транслятору языка типпеременной важен как с точки зрения количества байтов, отводимых под переменную, так иих интерпретации.Семинар 2 (1 курс, С)2Основные типы данных в Сицелые, длина в VCПримечаниеint4 байтаДлина зависит от системы, но short<=int<=longshort2 байтаlong4 байтаБеззнаковые целые типы образуются из знаковых + unsigned:unsigned int, unsigned short, unsigned long, unsigned charchar1 байтОперация sizeof(тип) возвращает число байт для данноготипа. Например, sizeof(int).С плавающей точкойfloat4 байтаdouble8 байтЗапись констант целого типа:ОбычнаяСи138138-367-367138LОбычная, по основанию 8 и 16Си118 = 9100111116 = 17100x11Запись вещественных констант:ОбычнаяСиОбычная с порядком1,3451.345-0,15-0.15Си-3-.15178 10178.e-30,367 1050.367e5Константы типа char: 'A' , '\64', 'b', специальные символы: '\07' - звонок.Объявление переменной (в начале функции):int a;float b;int c,d,e; //несколько переменных сразуint g = 5; //объявление с инициализациейПриведение типов.float f ;double df = 1.0;f = df; /*(неявное), (warning) */f = (float) df; /* явное */Основные арифметические операции•Присваивание=int i;i = 10;•Сложение +i = 2+5;i = i+1;printf("%d", 4+20);"Си штучки"i=j=k=l=10;≡l=10; k=10; j=10; i=10;Семинар 2 (1 курс, С)3•Вычитание -i = 5-2;•Умножение *x = 2.4*j;•Деление /x = 4.0/3.0;•Деление по модулю % i = 10%7;•Изменение знакаПример.float x; int i =1, j =2;x = i/j;=>0.0 (!) (тип результата)x = (float)i/j;=>0.5результат 3 (остаток от деления на 7)i = -j;•Старшинство операций: унарный -, *, /, % -> +, Порядок выполнения операций может быть изменен круглыми скобками:i = (j+1)*(j+2)"Си штучки"•Увеличение и уменьшение:i = i + 1;i = i -1;i++;i--;Постфиксная (i++) и префиксная формы (++i), пример:main(){int a = 1, b = 1, ap, pb;ap = a++;pb = ++b;printf("%d %d %d %d", a, ap, b,pb);}•-> 2122Варианты оператора присваивания:i+=5;i*=10;-=,/=,-> i = i + 5;-> i = i*10;%=Спецификации формата%d%6d%f%е%g%6f%6.2f%ld%lf%o%x%с%s%%- вывод значения десятичного целого- в поле из не меньше, чем 6 позиций- печать числа в виде dddd.dddd- печать числа в видеd.dddd e ddd- либо %f, либо %е- в поле из не меньше, чем 6 позиций- с двумя знаками после запятой- вывод длинного целого- вывод значения типа double- восьмеричное целое- шестнадцатиричное целое- литера (символ)- спецификация формата для строки- вывод самого знака процентаПример.char c;c = '\64'printf("%c",c); -> 4printf("%d",c); -> 52printf("%o",c); -> 64Семинар 2 (1 курс, С)4Специальные символы:\n\t\а\"\\- перевод строки и возврат каретки- табуляция- звонок- двойная кавычка- сама обратная черта"Стандартные" математические функцииТребуется включение в программу файла:#include <math.h>double pow(double, double);Пример:x = y3,12->x = pow(y, 3.12);double sin(double);double cos(double);double tan(double);double sqrt(double);double exp(double);double log(double);double log10(double);Пример:x = sin(y)->x = sin(y);- натуральный логарифм- десятичный логарифмdouble fabs(double);- модуль вещественного числаint abs(int);- модуль целого числаdouble cosh(double);- косинус гиперболический:double sinh(double);double tanh(double);e x + e−x2x−xe −e- синус гиперболический: sinh( x) =2xe − e−x- тангес гиперболический: tanh( x) = xe + e−xcosh( x) =double atan2(double, double); - арктангес, первый аргумент ~ sin, второй - cos.Генератор псевдослучайных чиселint rand(void) /* целые числа от 0 до RAND_MAX */void srand(unsigned int); /* смена начальной точки генератора */Пример.#include <stdlib.h>#include <time.h>int i,j;srand( (unsigned)time( NULL ));i = rand();j = rand();Б.
Керниган, Д. Ритчи. Язык программирования Си. §1.1, 1.2, 2.1 – 2.5, 2.7, 2.8, 2.10, 7.2.