Главная » Все файлы » Просмотр файлов из архивов » PDF-файлы » Лекция 7. Арифметические и логические выражения. Массивы

Лекция 7. Арифметические и логические выражения. Массивы (Электронные лекции)

PDF-файл Лекция 7. Арифметические и логические выражения. Массивы (Электронные лекции) Алгоритмы и алгоритмические языки (36200): Лекции - 1 семестрЛекция 7. Арифметические и логические выражения. Массивы (Электронные лекции) - PDF (36200) - СтудИзба2019-04-24СтудИзба

Описание файла

Файл "Лекция 7. Арифметические и логические выражения. Массивы" внутри архива находится в папке "Электронные лекции". PDF-файл из архива "Электронные лекции", который расположен в категории "". Всё это находится в предмете "алгоритмы и алгоритмические языки" из 1 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .

Просмотр PDF-файла онлайн

Текст из PDF

Лекции по курсу “Алгоритмы и алгоритмические языки”, 1 курс, 1 поток, 2010/2011 уч.год.Лекция 7 Арифметические и логические выражения. Массивы7.1. Арифметические типы данных:7.1.1. Целочисленные: int, short int, long int, char. Спецификатор .7.1.2. Типы с «плавающей точкой»: float, double, long double, long longdouble.7.2. Арифметические операции над целочисленными данными.7.2.1. Одноместные: изменение знака («одноместный минус»: –), одноместный плюс (+).7.2.2. Двухместные: сложение (+), вычитание (–), умножение (*), деление нацело (/),остаток от деления нацело (%).7.2.3. Пример программы.

Дано целое число a. Найти сумму его цифр#include <stdio.h>int main() {int a, b, s;printf ("Введите число: ");scanf ("%d ", &a);b = a;if (b < 0) b = -b;if (b = 0) s = 0;else {s = 0;while (b > 0) {s = s + b%10;b = b/10;}printf ("Сумма цифр числа %d равна %d\n ", a, s);}7.3. Арифметические операции над данными с плавающей точкой.7.3.1. Одноместные: изменение знака («одноместный минус»: –), одноместный плюс(+).7.3.2. Двухместные: сложение (+), вычитание (–), умножение (*), деление (/).7.4. Порядок выполнения арифметических операций в выражениях (приоритет). Самыйнизкий приоритет у двуместных + и –, более высокий приоритет у двуместных *, / и %,еще более высокий приоритет у одноместных + и –.

В выражениях без скобок операции сболее высоким приоритетом выполняются раньше. Скобки позволяют изменить порядоквыполнения операций.7.5. Вычисления с данными типа float. Нет ассоциативности и коммутативности.7.5.1. Пример. Вычисление суммы 5 чисел типа float (мантисса – 6 десятичных цифр,порядок – 2 десятичных цифры):0.231876*1002 + 0.645391*10-03 + 0.231834*10-01 + 0.245383*10-02 + 0.945722*10-03 =(с) Кафедра системного программирования ф-та ВМК МГУ, 20101Лекции по курсу “Алгоритмы и алгоритмические языки”, 1 курс, 1 поток, 2010/2011 уч.год.a) 0.231876*1002 + 0.645391*10-03 + 0.231834*10-01 + 0.245383*10-02 + 0.945722*10-03 =0.232147*1002;23.1876 + 0.000645391 = 23.188245391 = 23.1882 = 0.

231882*1002;23.1882 + 0.0231834 = 23.2113834 = 23.2114 = 0.232114*1002;23.2114 + 0.00245383 = 23.21385383 = 23.2138*1002;23. 2138 + 0.000945722 = 23.214745722 = 23.2147 = 0.232147*1002;b) 0.645391*10-03 + 0.9457*10-03 + 0.245383*10-02 + 0.231834*10-01 + 0.231876*1002 =0.232157*1002;0.000645391 + 0.000945722 = 0.001591113 = 0.00159111 = 0. 159111*10-02;0.00159111 + 0.00245383 = 0.00494493 = 0. 494493*10-02;0.00494493 + 0.0231834 = 0.02812833 = 0.0281283 = 0.

281283*10-01;0.0281283 + 23.1876 = 23.2157283 = 23.2157 = 0.232157*1002;7.5.2. Пример. Вычисление разности плавающих чисел (мантисса – 6 десятичных цифр,порядок – 2 десятичных цифры):0.238617*1002 – 0.238616*1002 + 0.645391*1004 – 0.645392*1004 + 0.845791*1000 –0.835790*1000 =a) 0.238617*1002 – 0.238616*1002 + 0.645391*1004 – 0.645392*1004 + 0.845791*1000 –0.835790*1000 = 0.100000*10-050.238617*1002 – 0.238616*1002 = 23.8617 – 23.8616 = 0.0001 = 0.100000*10-030.100000*10-03 + 0.645391*1004 = 0.0001 + 6453.91 = 6453.9101 = 0.645391*10040.645391*1004 – 0.645392*1004 = – 0.000001*1004 = – 0.100000*10-01– 0.100000*10-01 + 0.845791*1000 = – 0.01 + 0.845791 = 0.835791 *10000.835791 *1000 – 0.835790*1000 = 0.000001*1000 = 0.100000*10-05b) 0.238617*1002 + 0.645391*1004 + 0.845791*1000 – (0.238616*1002 + 0.645392*1004 +0.835790*1000) = 0.100000*10000.238617*1002 + 0.645391*1004 = 23.8617 – 6453.91 = 6478.6 = 0.647777*10040.647777*1004 + 0.845791*1000 = 6477.77 + 0.845791 = 6478.615791 =0.647862*10040.238616*1002 + 0.645392*1004 = 23.8616 + 6453.92 = 6477.7816 = 6477.78*10046477.78*1004 + 0.835790*1000 = 6477.78 + 0.835790 = 6478.61579 = 0.647852*10040.647862*1004 – 0.647852*1004= 0.000010*1004 = 0.100000*10-007.5.3.

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

Итак, чем меньше вычитаний,тем точнее результат.1Значащими цифрами числа с плавающей точкой называются все цифры его мантиссы за исключением нулей,стоящих в ее конце. Например, у числа 0.67000890000 * 103 все цифры, выделенные жирным шрифтом, значащие. Привычитании двух близких чисел почти все значащие цифры пропадают. Например, 0.67000890 * 103 - 0.67000880 * 103 =0.00000010 * 103 = 0.10 * 10-4. Таким образом, у результата всего одна значащая цифра, хотя у операндов было 7значащих цифр. Подробнее этот вопрос освещается в курсе численного анализа.(с) Кафедра системного программирования ф-та ВМК МГУ, 20102Лекции по курсу “Алгоритмы и алгоритмические языки”, 1 курс, 1 поток, 2010/2011 уч.год.(4) То же самое относится к умножению и делению.7.6.

Отношения и логические операции.7.6.1. Отношения – это операции: больше (>), больше или равно (>=), меньше (<),меньше или равно (<=). Имеют более низкий приоритет, чем сложение и вычитание(выражение i < lim – 1 воспринимается как i < (lim – 1)).7.6.2.

Операции сравнения: равно (==), не равно (!=) имеют более низкий приоритет, чемотношения.7.6.3. Логические операции: отрицание (!), конъюнкция (&&) и дизъюнкция (||)позволяют строить логические выражения. У одноместной операции ! приоритетвыше, чем у отношений и операций сравнения; у двухместных операций && и ||приоритет ниже, чем у отношений и операций сравнения; приоритет операции &&выше, чем приоритет операции ||.7.6.4. Результатами операций отношения и сравнения, операндами и результатамилогических операций являются константы и переменные булевского типа (см.дополнение д7.1)7.6.5.

Пример. Ввод строки символов. Фрагмент программы:for (i = 0; i < lim – 1 && (c = getchar()) != '\n' && c != EOF; ++i)s[i] = c;Замечания к примеру: (1) сначала проверка – поместится ли очередной символ впамяти, выделенной под строку (s); (2) если значение отношения i < lim – 1равно false, то значение всего логического выражения равно false (свойствооперации &&) и дальнейшие проверки не нужны; (3) проверка (c = getchar())!= '\n' делается второй, так как нужен новый символ; скобки в (c =getchar()) нужны потому, что операция присваивания (=) имеет более низкийприоритет, чем операция сравнения (!=); (4) EOF означает конец файла.7.7. Символьный тип данных (char)7.7.1.

Программа подсчета числа строк во входном потоке#include <stdio.h>int main() {int c, nl;nl = 0;while (c = getchar())!= EOF)if (c == ‘\n’)++nl;printf (“%d\n ”, nl);}7.7.2. В стандарте языка Си зафиксирован код для представления символьных данных.Символы представляются в коде ASCII (American Standard Code for InformationInterchange).

Код сопоставляет каждому символу число типа char, являющегося(с) Кафедра системного программирования ф-та ВМК МГУ, 20103Лекции по курсу “Алгоритмы и алгоритмические языки”, 1 курс, 1 поток, 2010/2011 уч.год.кодом этого символа. Символы упорядочены в алфавитном порядке (отдельно дляанглийского и русского алфавитов), к ним применимы операции отношения исравнения.

В Си-программе каждый символ, представляющий в программе самогосебя, заключается в одинарные кавычки ' и ', последовательность символов(строка) заключается в двойные кавычки " и ". Среди символов ASCII имеютсяанглийские и русские буквы (прописные и строчные), десятичные цифры, знакипрепинания, знаки арифметических действий, специальные (управляющие)символы. Часть специальных символов представляются в программах на языке Сипоследовательностями из двух символов, начинающихся с символа \: переход наначало новой строки (\n), знак табуляции (\t), возврат на один символ сзатиранием (\b), двойная кавычка (\"), обратная косая черта (\\) и др.

Вдополнении д7.2 такие специальные символы выделены розовым.7.7.3. Важное замечание: В коде ASCII буквы верхнего и нижнего регистра составляютнепрерывные последовательности: между a и z (соответственно, между A и Z) нетничего, кроме букв, расположенных в алфавитном порядке. Если бы код ASCII необладал указанным свойством, нижеприведенные функции были бы невозможны.7.7.4. Функция, преобразующая строку кодов цифр s в целое число (каждому символуцифры сопоставляется его код, и из полученных чисел формируется десятичноезначение).int atoi(char s[]) {int i, n;n = 0;for (i = 0; s[i] >= '0' && s[i] <= '9'; ++i)n = 10 * n + (s[i] – '0');return n;}7.7.5.

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5259
Авторов
на СтудИзбе
421
Средний доход
с одного платного файла
Обучение Подробнее