Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
РГР Типовой расчет. С++.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
521.73 Кб
Скачать

МИНОБРНАУКИ РОССИИ

Филиал федерального государственного бюджетного образовательного

учреждения высшего профессионального образования

"САМАРСКИЙ ГОСУДАРСТВЕННЫЙ

ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ"

в г. Сызрани

К а ф е д р а "Электротехника, информатика и компьютерные технологии"

ПРОГРАММИРОВАНИЯ НА ЯЗЫКЕ С++

Методические указания по выполнению типового расчета

по дисциплине "Программирование и алгоритмизация"

Сызрань

2013

УДК 004.432

программирования на языке С++: Метод. указ. по вып. типового расчета/ Сост. О.В. Раецкая. – Сызрань: Самар. гос. техн. ун-т; 2013. - 16 с.

Приведены теоретический материал по теме "С++. Составление линейных алгоритмов " с примерами, варианты заданий и образец выполнения типового расчета.

Методические указания предназначены для студентов по направлению 220700 всех форм обучения, изучающих дисциплину " Программирование и алгоритмизация ".

Типовой расчет " Составление линейных алгоритмов "

Цель работы: закрепление и систематизация знаний по составлению и отладке программ с использованием массивов с помощью языка программирования С++.

Основы языка С++

Приступая к составлению программ, следует помнить, что:

    1) Программа должна оформляться в соответствии со структурой языка программирования С++ (табл. 1);

    2) Программа должна иметь начало и конец, обозначенные операторным  блоком { … }; 

    3) Каждая переменная программы должна быть объявлена в начале программы с указанием её типа. Переменная может быть инициализирована некоторым значением. В имени переменной могут использоваться цифры и буквы латинского алфавита. Базовые типы данных даны в табл. 2;

    4) Все арифметические выражения состоят из операндов, которые должны расписываться в одну строчку. Если в формуле имеется дробь, то числитель и знаменатель указывается в круглых скобках. Основные операции, применяемые в выражениях, представлены табл. 3. 

Операция % выполняется только с целыми числами, и результатом вычисления является целое число.

В языке С++ операции инкремента (++) и декремента (––) могут появляться перед или после своего операнда. Когда операция является префиксом своего операнда, то операнд инкрементируется или декрементируется и его новое значение является результатом вычисления выражения. Когда операция является постфиксом своего операнда, то непосредственным результатом выражения является значение операнда перед его инкрементированием или декрементированием. После этого результат используется в контексте, а операнд инкрементируется или декрементируется;

    5) Вычисления в выражениях выполняются в соответствии с приоритетом операций, распределенных по категориям (табл. 4);

    6) Каждый оператор должен заканчиваться символом « ; » - признаком окончания действия;

    7) Для ввода и вывода информации используются специальные функции (табл. 5). После вывода информации курсор устанавливается в этой же строке. Если есть необходимость переслать курсор на начало следующей строки, то используются в С++ – специальные управляющие символы «\n» и «endl»;

    8) В составе транслятора среды программирования имеются стандартные функции, применяемые при вычислениях. Основные, наиболее часто используемые функции представлены табл. 6. Необходимо обращать внимание на подключаемые библиотечные модули, содержащие стандартные функции. 

Таблица 1. Структура программы

 Назначение

 Структура

 Директивы препроцессора

 # include < Имя библиотеки>  # define  Имя Макрос

 Раздел объявлений и соглашений 

 label    Номер метки; const    Имя константы = Значение константы; Имя типа переменной    Список имен переменных;

 Раздел описания процедур и функций

 function Имя функции (входные и выходные данные) { Тело функции }

 Основная программа

 main ( ) { Тело программы }

Таблица 2. Типы данных и диапазон представления чисел

 

 Диапазон

 Тип

 целые числа

 0…255

 uns char

 -128…127

 char

 -32768…32767

 int, short

 0…65535

 uns short

 -2147483648…2147483647

 long

 0…4294967295

 uns long

 вещественные числа

 3,4Е-38…3,4Е38

 float

 

 

 1,7Е-308…1,7Е308

 double

 3,4Е-4932…1,1Е4932

 long double

 

 

Таблица 3. Операции

 

 Назначение

 Операция

 аддитивные

 арифметические

 +,  –

 мультипликативные

 *, /

 остаток от деления

 %

 отношений

 равно

 == 

 не равно

 !=

 больше

 >

 меньше

 <

 больше или равно

 >=

 меньше или равно

 <=

 логические

 и

 &&

 или

 ||

 отрицание

 !

 присваивания

 простое  присваивание

 =

 сложение с присваиванием

 +=

 вычитание с присваиванием

 –=

 умножение с присваиванием

 *=

 деление с присваиванием

 /=

 остаток от деления с присваиванием

 %=

 унарный инкремент

 ++

 унарный декремент

 – –

Таблица 4. Приоритет выполнения операций

 Операция

 Приоритет

 Категория

 !,  ++,  – –

 Первый

 Унарные

 *,  /,  %,  &&

 Второй

 Мультипликативные

 +,  –, ||

 Третий

 Аддитивные

 ==, !=, <, >, <=, >=

 Четвертый

 Отношения

 =, *=, /=, %=, +=, –=

 Низший

 Простое и составное

Таблица 5. Функции  и процедуры ввода и вывода

 

 Спецификаторы форматов и управляющие символы

 Функции

 Ввод

 Библиотека: stdio.h  %d, %i – целые  %f – вещественные  %с – символьные  %s – строковые

 scanf (“специф“, & идентификатор);  например,  scanf (“%d%f”, &a, &b);  scanf (“%c”, &ch);  scanf (“%s”, st);

 Библиотека: iostream.h

 cin>>идентификатор;  например,  cin>>a;  cin>>b>>ch; cin>>st;

 Вывод

 Библиотека: stdio.h  %d, %i – целые  %f – вещественные  %с – символьные  %s – строковые  \n – перевод строки

 printf (“текст специф“, идентиф);  например,  printf (“Значение а= %d\n”, a);  printf (“а= %d\n и b= %f\n ”, a, b);   printf (“\n символ= %c \n ”, ch);  printf (“ строка: %s \n ”, st);

 Библиотека: iostream.h  \n и endl – перевод строки

 cout<<текст<<идентификатор;  например,  cout<<”Значение a=”<<a<<”\n”;   cout<<” a=”<<a<<” b=”<<b<<endl;  cout<<”символ: ”<<ch<<endl;  cout<<”строка: ”<<st<<endl;

Таблица 6. Часто используемые стандартные функции

 Назначение

 Функция

 абсолютное значение по модулю

 abs (int x),  fabs (double x),  labs ( longint x)

 тригонометрические функции (в радианах)

 double cos (double x)  double sin (double x)  double atan (double x)  double tan (double x)

 экспонента числа – expx

 double exp (double x)

 вычисляет остаток от числа

 double fmod (double x, double y)

 вычисляет целую часть от числа

 struct div ( int x; int y)

 натуральный логарифм числа

 double log (double x)

 десятичный логарифм

 double log10 (double x)

 квадрат числа

 double sqr (double x)

 квадратный корень числа

 double sqrt (double x)

 вычисляет число x в степени y

 double pow (double x, double y)

 возвращает случайное число в диапазоне 0…x;

 int rand () 

 округляет число до целого 

 double floor (double x)

Составление линейных алгоритмов

Линейными называются алгоритмы, процесс пошагового выполнения которых можно изобразить прямой линией – сверху вниз. 

Пример. Дано двухзначное целое число b. Найти сумму его цифр.

Текстуальная форма алгоритма задачи:

    1) Ввести  число b с клавиатуры в ЭВМ;

    2) Для выделения первой цифры воспользуемся известным в математике способом деления числа b на 10, и возьмем целое число от этого деления;

    3) Для выделения второй цифры разделим число b на 10, и возьмем дробную часть от этого деления;

    4) Найдем сумму найденных цифр;

    5) Полученный результат выдать на экран дисплея.

Графическая форма представления алгоритма дана в виде схемы (рис. 2), использующей блоки для обозначения каждого действия и приведен текст программы.

 

Рисунок 2. Схема алгоритма к примеру 1

#include <iostream.h>                                              

#include <math.h>

#include <stdlib.h>

       main ()

      { int b, x, y,  z;

         div_t  res;     // описание структуры функции div:

     // struct div_t ( int quit; int rem;) div (n, d);

                                   // где n    – числитель, d -  знаменатель,

                                    //       quit – целая часть от деления,.

            //       rem – дробная часть от деления.

        cout <<“ Введите целое число : “ ;  cin >> b >>endl ;

          res = div (b, 10) ;   // делим число b на 10, и расчленяем на 

         x = res.quit ;   //     целую часть и

         y = res.rem ;    //     дробную часть

          z = x + y ;

         cout <<“ Сумма цифр числа ”<< b << “ равна “ << z <<endl;

       }

Содержание отчета

Титульный лист по стандартной форме.

Постановку задачи.

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

Алгоритм решения задачи (в виде блок-схемы или в текстуальной форме).

Тексты программы.

Тестовые наборы  (тест – это проверка работоспособности программы по контрольным значениям данных).

Результаты вычислений по каждому тесту.

Отчет для лабораторной работы составляется в одном и подлежит защите. Для защиты лабораторной работы студент должен подготовиться к ответу на контрольные вопросы.

Технология выполнения работы

Нарисовать картинку, поясняющую логику решения задачи и составить алгоритм. Написать программу, которая в задаче под пунктом использует целочисленную арифметику. 

Вопросы для защиты работы

В чем особенности формализованного языка?

Что понимают под вычислительным алгоритмом?

Какие требования предъявляются к алгоритмам?

В чём суть основных этапов подготовки и компьютерного решения задач?

Общие правила построения программ.

Как получают исполняемую программу?

Какие операции можно выполнять над величинами целого типа? Укажите приоритет их выполнения при расчете значения арифметического выражения.

Как определить остаток от деления одной величины целого типа на другую?

Как оформляется оператор вывода результатов на экран? Что можно указывать в качестве элементов списка вывода? Какой символ используется для разделения элементов списка вывода? Как должен быть оформлен оператор вывода, чтобы информация выводилась на экран с новой строки?

Как оформляется оператор ввода? Что можно указывать в качестве элементов списка ввода? Как работает оператор ввода (что происходит при его выполнении)?

Как оформляется оператор присваивания? Как он работает (что происходит при его выполнении)?

Как проверить, правильно ли работает программа, в которой проводятся какие-то вычисления?