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

Практические задания Задание 1: перевод блок-схемы в код программы

Цель задания

Знакомство с задачами, для решения которых используются условные операторы и операторы цикла. Получение навыков использования условных операторов и операторов цикла.

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

Закодировать блок-схему (вариант задания получить у преподавателя), сравнить результат работы программы с результатами, полученными теоретически.

Задание 2: нахождение суммы бесконечного ряда

Цель задания

Закрепление навыков использования условных операторов и операторов цикла.

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

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

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

1. Программа должна выполниться при любых начальных условиях. Для этого необходимо проверить входные данные на корректность и выдать в случае необходимости сообщение на экран.

2. Точность расчетов можно задать или с клавиатуры, или описать в программе как константу.

3. Отладить программу, используя окно отладки Watch.

Примечание

Точность считается достигнутой, если очередное слагаемое оказалось по модулю меньше, чем .

Варианты заданий

Вариант 1.

Сравнить полученное значение со стандартной функцией .

Вариант 2.

Сравнить полученное значение со стандартной функцией .

Вариант 3.

Сравнить полученное значение со стандартной функцией

Вариант 4.

Сравнить полученное значение со стандартной функцией

Вариант 5.

Сравнить полученное значение со стандартной функцией

Вариант 6.

Сравнить полученное значение со стандартной функцией

Вариант 7.

Сравнить полученное значение со стандартной функцией

Вариант 8.

Сравнить полученное значение со стандартной функцией

Вариант 9.

при

Сравнить полученное значение со стандартной функцией

Вариант 10.

при

Сравнить полученное значение со стандартной функцией

Структурированные типы данных: одномерные массивы

Одномерный массив в математике называется последовательностью чисел или вектором. Каждый элемент в массиве пронумерован. В Паскале способ нумерации и тип элементов массива задается при его описании.

Примеры программ с использованием массива

Пример 1: Дан массив из 10 целых чисел со значениями, заданными в интервале от 0 до 100. Определить первый максимальный элемент массива и сравнить его по величине со значением, введенным с клавиатуры. Вывести сообщение о результате анализа.

Порядок выполнения задания:

  1. Введем обозначения:

Массив – а;

Для значения, считываемого с клавиатуры – x;

Максимальный элемент – max;

Вспомогательная переменная для обозначения номера элемента – i.

  1. Алгоритм нахождения максимального состоит в следующем: предполагаем, что максимальный – первый элемент массива. Затем в цикле просматриваем все элементы массива по очереди, начиная со второго, и сравниваем каждый элемент с максимальным. Если окажется что предполагаемый максимум меньше, чем очередной элемент массива присваиваем максимуму значение этого элемента.

  2. Затем сравниваем найденный максимум с переменной x. Вывод результата анализа осуществляем на экран с помощью условных операторов.

  3. Составим блок-схему алгоритма:

  1. Перейдем к кодированию. По условию массив содержит 10 целых чисел, пронумеруем их от 1 до 10, тогда код программы может быть таким:

//---------------------------------------------------------------------------

#include <vcl.h>

#include <stdio.h>

#include <conio.h>

#include <math.h>

#include <iostream.h>

#include <stdlib.h>

#pragma hdrstop

//---------------------------------------------------------------------------

#pragma argsused

int main(int argc, char* argv[])

{

int arr [10];

for (int i=0; i <= 9; arr[i] = random (100), i++ );

printf ("Ishodnii massiv : \n");

for (int i = 0; i <= 9; printf(" %d ", arr[i]), i++);

printf ("\nVvedite znachenie 'x'\n");

int x = 0;

scanf ("%d",&x);

int max = arr[0];

for (int i =1 ; i <= 9; i++)

{

if (max < arr [i])

{

max = arr [i];

}

}

printf ("Max = %d\n", max);

if (max > x)

{

printf ("Max > x\n");

}

if (max == x)

{

printf ("Max = x\n");

}

if (max < x)

{

printf ("Max < x\n");

}

getch();

return 0;

}

//---------------------------------------------------------------------------

Результат работы программы:

Ischod massiv

0 3 86 20 27 67 31 16 37 42

Vvod x

100

Max=86

Max<x

Пример 2: В массиве вещественных чисел, заданных случайным образом в интервале (-100, +100), подсчитать количество отрицательных элементов и сумму положительных.

//---------------------------------------------------------------------------

#include <vcl.h>

#include <stdio.h>

#include <conio.h>

#include <math.h>

#include <iostream.h>

#include <stdlib.h>

#pragma hdrstop

//---------------------------------------------------------------------------

#pragma argsused

float RandomNumber(float Min, float Max)

{

return ((float(rand()) / float(RAND_MAX)) * (Max - Min)) + Min;

}

int main(int argc, char* argv[])

{

randomize();

const n = 20;

printf ("Ishodnii massiv :\n");

float arr[n];

for (int i = 0; i < n; arr[i] = RandomNumber(-100,100),i++);

for (int i = 0; i < n;i++)

{

printf("%8.2f", arr[i]);

printf("\n");

}

int count = 0;

for (int i=0; i < n; i++)

{

if (arr[i] < 0 )

{

count++;

}

}

printf("Kol-vo otricat. elementov = %d\n", count);

float summa =0.0;

for (int i = 0; i<n; i++)

{

if (arr[i] > 0)

{

summa +=arr[i];

}

}

printf ("Summa pologitelnih el-tov = %5.2f\n", summa);

getch();

return 0;

}

//---------------------------------------------------------------------------

Результат работы программы: