Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Ввод и вывод в стандартном Си



Обмен данными с внешним миром программа на стандартном Си реализует с помощью библиотеки функций ввода-вывода

#include < stdoi.h>

  1. printf ( < форматная строка>, < список аргументов> );

< форматная строка> - строка символов, заключенных в кавычки, которая показывает, как должны быть напечатаны аргументы. Например:

printf ( “Значение числа Пи равно %f\n”, pi);

Форматная строка может содержать

  1. символы печатаемые текстуально;
  2. спецификации преобразования
  3. управляющие символы.

Каждому аргументу соответствует своя спецификация преобразования:

%d - десятичное целое число;

%f - число с плавающей точкой;

%c - символ;

%s - строка.

\n - управляющий символ новая строка.

2) scanf ( < форматная строка>, < список аргументов> );

В качестве аргументов используются указатели. Например:

scanf(“ %d%f ”, & x, & y);

1.5.2. Ввод и вывод в Си++

Используется библиотечный файл iostream.h, в котором определены стандартные потоки ввода данных от клавиатуры cin и вывода данных на экран дисплея cout, а также соответствующие операции

  1. < < - операция записи данных в поток;
  2. > > - операция чтения данных из потока.

Например:

#include < iostream.h>;

.........

cout < < “\nВведите количество элементов: ”;

cin > > n;

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

  1. Вычислить значение выражения при различных вещественных типах данных (float и double). Вычисления следует выполнять с использованием промежуточных переменных. Сравнить и объяснить полученные результаты.
  2. Вычислить значения выражений. Объяснить полученные результаты.

 

Варианты

Задание 1 Задание 2
, при а=1000, b=0.0001
  1. n+++m
  2. m-- > n
  3. n-- > m
 
, при а=1000, b=0.0001
  1. ++n*++m
  2. m++< n
  3. n++> m
 
, при а=1000, b=0.0001
  1. n---m
  2. m--< n
  3. n++> m
 
, при а=1000, b=0.0001
  1. n++*m
  2. n++< m
  3. m-- > m
 
, при а=1000, b=0.0001
  1. - -m-++n
  2. m*n< n++
  3. n-- > m++
 
, при а=1000, b=0.0001
  1. m-++n
  2. ++m> --n
  3. --n< ++m
 
, при а=1000, b=0.0001
  1. m+--n
  2. m++< ++n
  3. n--< --m
 
, при а=100, b=0.001  
  1. n++-m
  2. m-- > n
  3. n-- > m
 
, при а=100, b=0.001
  1. ++n*++m
  2. m++< n
  3. n++> m
 
, при а=100, b=0.001
  1. n---m
  2. m--< n
  3. n++> m
 
, при а=100, b=0.001
  1. n++*m
  2. n++< m
  3. m-- > m
 
, при а=1000, b=0.0001
  1. - -m-++n
  2. m*n< n++
  3. n-- > m++
 
, при а=1000, b=0.0001
  1. m-++n
  2. ++m> --n
  3. --n< ++m
 
, при а=1000, b=0.0001
  1. m+--n
  2. m++< ++n
  3. n--< --m
 
, при а=1000, b=0.0001
  1. n++-m
  2. m-- > n
  3. n-- > m
 
, при а=1000, b=0.0001
  1. ++n*++m
  2. m++< n
  3. n++> m
 
, при а=1000, b=0.0001
  1. n---m
  2. m--< n
  3. n++> m
 
, при а=1000, b=0.0001
  1. n++*m
  2. n++< m
  3. m-- > m
 
, при а=100, b=0.001
  1. - -m-++n
  2. m*n< n++
  3. n-- > m++
 
, при а=100, b=0.001
  1. m-++n
  2. ++m> --n
  3. --n< ++m
 
, при а=100, b=0.001
  1. n++-m
  2. m-- > n
3)n-- > m
, при а=100, b=0.001
  1. ++n*++m
  2. m++< n
  3. n++> m
 
, при а=1000, b=0.0001
  1. n---m
  2. m--< n
  3. n++> m
 
, при а=1000, b=0.0001
  1. n++*m
  2. n++< m
  3. m-- > m
 
, при а=1000, b=0.0001
  1. - -m-++n
  2. m*n< n++
  3. n-- > m++
 

 

Методические указания

  1. Для ввода и вывода данных использовать операции > > и < < и стандартные потоки cin и cout.
  2. Для вычисления степени можно использовать функцию pow(x, y) из библиотечного файла math.h.
  3. При выполнении задания 1 надо использовать вспомогательные переменные для хранения промежуточных результатов.

Например: c=pow(a, 3); d=3*a*a*b; e=3*a*b*b; f=pow(b, 3);

 

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

  1. Постановка задачи.
  2. Программа решения задания1.
  3. Результаты работы программы для данных типа float.
  4. Результаты работы программы для данных типа double.
  5. Объяснение результатов.
  6. Программа решения задания2.
  7. Результаты работы программы.
  8. Объяснение результатов.

 

Лабораторная работа №2. " Использование основных операторов языка Си"

Цель: Получение навыков в выборе и использовании операторов Си++; знакомство с итерационными процессами.

 

  1. Краткие теоретические сведения

Операторы управления работой программы называют управляющими конструкциями программы. К ним относят:

  • составные операторы;
  • операторы выбора;
  • операторы циклов;
  • операторы перехода.
    1. Составные операторы

К составным операторам относят собственно составные операторы и блоки. В обоих случаях это последовательность операторов, заключенная в фигурные скобки. Блок отличается от составного оператора наличием определений в теле блока. Например:

{

n++; это составной оператор

summa+=n;

}

 

{

int n=0;

n++; это блок

summa+=n;

}

 

    1. Операторы выбора

Операторы выбора - это условный оператор и переключатель. Условный оператор имеет полную и сокращенную форму.

if ( < выражение-условие> ) < оператор>; //сокращенная форма

В качестве < выражения-условия> могут использоваться арифметическое выражение, отношение и логическое выражение. Если значение < выражения-условия> отлично от нуля (т. е. истинно), то выполняется оператор. Например:

if (x< y& & x< z)min=x;

if ( < выражение-условие> ) < оператор1>; //полная форма

else < оператор2>;

Если значение < выражения-условия> отлично от нуля, то выполняется оператор1, при нулевом значении < выражения-условия> выполняется оператор2.Например:

if (d> =0)

{

x1=(-b-sqrt(d))/(2*a);

x2=(-b+sqrt(d))/(2*a);

cout< < “\nx1=”< < x1< < “x2=”< < x2;

}

else cout< < “\nРешения нет”;

Переключатель определяет множественный выбор.

switch (< выражение> )

{

case < константа1> : < оператор1 >;

case < константа2> : < оператор2 >;

...........

default: < операторы>;

При выполнении оператора switch, вычисляется выражение, записанное после switch и его значение последовательно сравнивается с константами, которые записаны следом за case. При первом же совпадении выполняются операторы помеченные данной меткой. Если выполненные операторы не содержат оператора перехода, то далее выполняются операторы всех следующих вариантов, пока не появится оператор перехода или не закончится переключатель. Если значение выражения, записанного после switch не совпало ни с одной константой, то выполняются операторы, которые следуют за меткой default. Метка default может отсутствовать.

Пример:

switch ( number )

{

case 1: cout< < “число=1”; break;

case 2: cout< < “2 * 2”< < number * number;

case 3: cout< < “3 * 3”< < number * number; break;

case 4: cout< < number< < “- это замечательное число”; break;

default: cout< < “Конец работы программы”;

}

 

    1. Операторы циклов
  1. Цикл с предусловием:

while (< выражение-условие> )

< тело_цикла> ;

В качестве < выражения-условия> чаще всего используется отношение или логическое выражение. Если оно истинно, т. е. не равно 0, то тело цикла выполняется до тех пор пока < выражение-условие> не станет ложным.

  1. Цикл с постусловием:

do

< тело_цикла>;

while (< выражение-условие> );

Тело цикла выполняется до тех пор, пока < выражение-условие> истинно.

  1. Цикл с параметром:

for ( < выражение_1>; < выражение-условие>; < выражение_3> )

тело_цикла;

< Выражение_1> и < выражение_3> могут состоять из нескольких выражений, разделенных запятыми. < Выражение_1> - задает начальные условия для цикла (инициализация).< Выражение-условие> определяет условие выполнения цикла, если оно не равно 0, цикл выполняется, а затем вычисляется значение < выражения_3>. < Выражение_3> - задает изменение параметра цикла или других переменных (коррекция). Цикл продолжается до тех пор, пока < выражение-условие> не станет равно 0. Любое выражение может отсутствовать, но разделяющие их «; » должны быть обязательно.

Примеры использования цикла с параметром.

  1. Уменьшение параметра:

for ( n=10; n> 0; n--)

{ < тело цикла> };

  1. Изменение шага корректировки:

for ( n=2; n> 60; n+=13)

{ < тело цикла> };

  1. Возможность проверять условие отличное от условия, которое налагается на число итераций:

for ( num=1; num*num*num< 216; num++)

{ < тело цикла> };

  1. Коррекция может осуществляться не только с помощью сложения или вычитания:

for ( d=100.0; d< 150.0; d*=1.1)

{ < тело цикла> };

for (x=1; y< =75; y=5*(x++)+10)

{ < тело цикла> };

  1. Можно использовать несколько инициализирующих или корректирующих выражений:

for (x=1, y=0; x< 10; x++; y+=x);

 

    1. Операторы перехода

Операторы перехода выполняют безусловную передачу управления.

  1. break - оператор прерывания цикла.

{

< операторы>

if (< выражение_условие> ) break;

< операторы>

}

Т. е. оператор break целесообразно использовать, когда условие продолжения итераций надо проверять в середине цикла.

Пример:

// ищет сумму чисел вводимых с клавиатуры до тех пор, пока не будет введено 100 чисел или 0

for(s=0, i=1; i< 100; i++)

{

cin> > x;

if( x==0) break; // если ввели 0, то суммирование заканчивается

s+=x;

}

  1. continue - переход к следующей итерации цикла. Он используется, когда тело цикла содержит ветвления.

Пример:

//ищет количество и сумму положительных чисел

for( k=0, s=0, x=1; x! =0; )

{

cin> > x;

if (x< =0) continue;

k++; s+=x;

}

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

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

Варианты

1) Найти сумму целых положительных чисел, кратных 3 и меньших 200.

2) Найти сумму целых положительных четных чисел, меньших 100.

3) Найти сумму целых положительных нечетных чисел, меньших 200.

4) Найти сумму целых положительных чисел, больших 20, меньших 100 и кратных 3

  1. Найти сумму ряда с точностью e=10-4, общий член которого

  1. Найти сумму ряда с точностью e=10-4, общий член которого

7) Найти сумму ряда с точностью e=10-4, общий член которого

  1. Найти сумму ряда с точностью e=10-4, общий член которого

  1. Найти сумму ряда с точностью e=10-4, общий член которого

  1. Найти сумму ряда с точностью e=10-4, общий член которого

11) Найти сумму ряда с точностью e=10-4, общий член которого

12) Найти сумму ряда с точностью e=10-4, общий член которого

  1. Найти сумму ряда с точностью e=10-4, общий член которого

  1. Найти сумму ряда с точностью e=10-4, общий член которого

  1. Найти сумму ряда с точностью e=10-4, общий член которого

  1. Найти сумму ряда с точностью e=10-4, общий член которого

17) Найти сумму ряда с точностью e=10-4, общий член которого

  1. Найти сумму ряда с точностью e=10-4, общий член которого

  1. Найти сумму ряда с точностью e=10-4, общий член которого

20) Найти сумму ряда с точностью e=10-4, общий член которого

  1. Найти сумму 13 членов ряда, в котором

  1. Найти сумму 15 членов ряда, в котором

  1. Найти сумму 10 членов ряда, в котором

  1. Найти сумму 9 членов ряда, в котором

  1. Найти сумму 7 членов ряда, в котором

 

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

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

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

3. Результат решения конкретного варианта.

 

Методические указания

1. При определении суммы членов ряда следует использовать рекуррентную формулу для получения следующего члена ряда.

Например, требуется найти сумму ряда с точностью e=10-4, общий член которого .

Для получения рекуррентной формулы вычислим отношение:

,

откуда:

.

  1. При составлении программы считать, что точность достигнута, если аn < e

 

Лабораторная работа №3
" Вычисление функций с использованием их разложения в степенной ряд"

Цель: Практика в организации итерационных и арифметических циклов.


Поделиться:



Популярное:

Последнее изменение этой страницы: 2016-07-14; Просмотров: 864; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.078 с.)
Главная | Случайная страница | Обратная связь