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

1.5.3. Пример работы программы:

Пример работы представлен на рисунке 6 и рисунке 7.

Рисунок 9. «при правильно введенных данных».

Рисунок 10. «При переменной a равной 0».

2. Практическая работа № 2.

2.1. Задача № 1.

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

  1. Вывести Количество и Сумму элементов между минимальным и максимальным элементами последовательности (при подсчете суммы минимальный и максимальный элементы не суммируются).

  2. Рассчитать и вывести Среднее значение последовательности и количество элементов, значение которых меньше среднего значения.

  3. Подсчитать частоту встречаемости образца в последовательности.

Решение:

2.1.1. Блок-схема

2.1.2. Код программы

#include "stdafx.h"

#include <conio.h>

#include <iostream>

int _tmain()

{

const char* locale = setlocale(LC_ALL,"");

int a[10],i,min=0,max=0,elementmax=0,element=0,x,x2,l,x3,sum=0,sm;

float sr;

sm=0;

printf ("Введите 10 элементов массива: \n");

printf ("Введите элемент 1 ->");

scanf ("%i", &a[0]);

min=a[0];

max=a[0];

for (i=1; i<10; i++)

{

printf ("Елемент %i ->",i+1);

scanf ("%i", &a[i]);

if (a[i]<min)//ищем минимум

{

min=a[i];

element=i+1;

}

if (a[i]>max)//ищем максимум

{

max=a[i];

elementmax=i+1;

}

}

printf("Введите образец для поиска: ");scanf("%i",&l);//ищем образец для поиска

for (i=0;i<10;i++)

{

if(l==a[i])

sum=sum+1;

}

if (element==0)

{

x=element+1;

printf("Минимум = %i - элемент номер %i",min,x);

}

else

printf("Минимум = %i - элемент номер %i",min,element);

if (elementmax==0)

{

x2=elementmax+1;

printf("\nМаксимум = %i - элемент номер %i",max,x2);

}

else

printf("\nМаксимум = %i - элемент номер %i",max,elementmax);

///////// ищем между минимумм и максимум

if (element==0)

{

if (elementmax==0)

{

x=element+1;

x2=elementmax+1;

x3=x2-x;

printf("\n1Количество элементов между максимум и минимум %i",x3);

}

else

{

x=element+1;

x3=(elementmax-x)-1;

printf("\n2Количество элементов между максимум и минимум %i",x3);

for (i=element+1; i<elementmax-1;i++)

{

sm=sm+a[i];

}

printf("\nСумма %i", sm);

sr=(float)sm/x3;

printf("\nСреднее значение: %f", sr);

}

}

else

{

if (elementmax==0)

{

x2=elementmax+2;

x3=element-x2;

printf("\n3Количество элементов между максимум и минимум %i",x3);

for (i=elementmax+1; i<element-1;i++)

{

sm=sm+a[i];

}

printf("\nСумма %i", sm);

sr=sm/x3;

printf("\nСреднее значение: %f", sr);

}

else

{

if (elementmax>element)

{

x3=(elementmax-element)-1;

printf("\n4Количество элементов между максимум и минимум %i",x3);

for (i=element; i<elementmax-1;i++)

{

sm=sm+a[i];

}

printf("\nСумма %i", sm);

sr=(float)sm/x3;

printf("\nСреднее значение: %f", sr);

}

else

{

x3=(element-elementmax)-1;

printf("\n5Количество элементов между максимум и минимум %i",x3);

for (i=elementmax; i<element-1;i++)

{

sm=sm+a[i];

}

printf("\nСумма %i", sm);

sr=sm/x3;

printf("\nСреднее значение: %f", sr);

}

}

}

///////// выводим сколько встречается число

if (sum==0)

printf("\nСовпадений нет!");

else

printf("\nОбразец встречается %i раз(а)",sum);

_getch();

}

2.1.3. Пример работы программы:

Пример работы представлен на рисунке 8.

Рисунок 11 «Пример работы програмы»

2.2. Задача № 2.

Написать программу, которая запрашивает ввод последовательности из 10 целых чисел. Программа должна:

  1. Вычислять произведение четных элементов массива;

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

  3. Подсчитывать сумму элементов между первым и последним нулевыми элементами.

Решение:

2.2.1. Блок схема

2.2.2. Код программы

#include "stdafx.h"

#include <conio.h>

#include <iostream>

#include <math.h>

int _tmain()

{int i,el1,el2,sum=0,k=0;

int a[11];

float pr=1;

const char* locale = setlocale(LC_ALL,"");

printf("Вычислить произведение чётных элементов массива\n и вычислить сумму между первым и последниним элементом массива\n");

for (i=0;i<=9;i++)

{

printf("Введите элемент %i \n",i+1);

scanf("%i",&a[i]);

if (k>=1 && a[i]==0)

{

el2=i;

k++;

}

if (k==0 && a[i]==0)

{

el1=i;

k++;

}

}

if (k>=2)

{

for (i=0;i<=9;i++)

{

if ((i+1)%2==0)

pr=pr*float(a[i]);//Произведение четырёх элементов массива

}

if (el1<el2)

for (i=el1+1;i<=el2-1;i++)

{

sum=sum+a[i];

}

else

for (i=el2+1;i<=el1-1;i++)

{

sum=sum+a[i];

}

printf("Произведение четырёх элементов массива %f \n",pr);

printf("номер первого нулевого элемента %i \n",el1+1);

printf("номер последнего нулевого элемента = %i \n",el2+1);

printf("сумма элементов между первым и последним нулевым элементом = %i \n",sum);

} else

{

for (i=0;i<=9;i++)

{

if ((i+1)%2==0)

pr=pr*float(a[i]);

}

printf("Произведение четырёх элементов массива %f \n",pr);

printf("Введён только 1 нулевой элемент либо их нет!");

}

_getch();

}2.2.3. Пример работы программы:

Пример работы представлен на рисунке 9 и рисунок 10.

Рисунок 12. «При данных введённых правильно».

Рисунок 3. «при введённых не более 1 нулевого элемента»

2.3. Задача № 3.

Написать программу, которая запрашивает ввод последовательности из 10 целых чисел. Программа должна:

3)Выводить максимальное по модулю значение последовательности;

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

3)Выводить массив без отрицательных и нулевых элементов.

Решение:

2.3.1. Блок схема:

2.3.2. Код программы

#include "stdafx.h"

#include <conio.h>

#include <iostream>

#include <math.h>

int _tmain()

{

int i,sum=0,k=0,max=0,smm=0,mod=0,p=0,j=0;

int a[10];

float pr=1;

const char* locale = setlocale(LC_ALL,"");

for (i=0;i<10;i++)

{

printf("ВВедите элемент %i ",i+1);

scanf("%i",&a[i]);

}

for (i=0;i<10;i++)

{

if (a[i]>max)

max=a[i];

}

for (i=0;i<10;i++)

{

mod=abs(a[i]);

if (mod>max)

max=mod;

}

for (i=0;i<10;i++)

if (a[i]<0)

k=i+1;

for (i=9;i>=0;i--)

if (a[i]<0)

p=i+1;

for (i=p;i<k-1;i++)

sum=sum+a[i];

for (i=p-1;i<k;i++)

smm=smm+a[i];

for (i=0;i<10;i++)

if (a[i]<0)

j=j+1;

if (j>=2)

{

printf("максимальное значение по модулю %i \n",max);

printf("Сумма элементов между первывм и последним отрицательными числами: \n");

printf("1) Без учета первого и последнего отрецательных чисел: %i \n", sum);

printf("2) C учетом первого и последнего отрецательных чисел: %i \n", smm);

for (i=0;i<10;i++)

if (a[i]>0)

printf(" %i ",a[i]);

}

else

{

printf("максимальное значение по модулю %i \n",max);

printf("Отрицательных элементов нет либо всего 1!\n");

printf("Массив без учёта отрицательных и нулевых значений:");

for (i=0;i<10;i++)

if (a[i]>0)

printf(" %i ",a[i]);

}

_getch();

}

2.3.3. Пример работы программы:

Пример работы представлен на рисунке 11.

Рисунок 4«Пример работы программы»

3. Практическая работа № 3.

3.1. Задача № 1.

Написать программу, которая запрашивает ввод строки и образец символа. Ввод осуществляется на латинице. Программа должна:

1)Вывести строку без указанного символа

2)Подсчитать, сколько раз символ был удален из строки.

3)Если образец отсутствует в строке, программа должна выводить соответствующее сообщение.

Решение:

3.1.1. Блок-схема

3.1.2. Код программы

#include "stdafx.h"

#include <conio.h>

#include <iostream>