
Int _tmain()
{
const char* locale = setlocale(LC_ALL,"");
int a[9];
int i;
int p, z, x, sum=0; //объявление переменных
printf("Вычисление произведения четных элементов иассива и\n");
printf("Вычисление суммы между первым и последним нулевыми элементами\n");
for (i=0; i<10; i++)
{
printf("Введите %i: " , i+1);
scanf("%i" , &a[i]);
} //цикл ввода элементов массива
p=1;
for (i=0; i<10; i++)
{
if((i+1)%2==0)
p=p*a[i]; //вычисление произведения четных элементов массива
}
for (i=9; i>=0; i--)
{
if(a[i]==0)
z=i+1;
} //вычисление номера первого нулевого элемента
for (i=0; i<10; i++)
{
if(a[i]==0)
x=i+1;
} //вычисление номера последнего нулевого элемента
for (i=z; i<x; i++)
{
sum=a[i]+sum;
} //вычисление суммы между первым и последним элементом масива
printf("Произведение четных элементов массива %i \n", p);
printf("Номер первого нулевого элемента %i \n", z);
printf("Номер последнего нулевого элемента %i\n" , x);
printf("Сумма между первым и последним элементом масива %i\n" , sum);
_getch();
} //вывод данных и остановка программы
Пример работы программы:
Программа 3
Написать программу, которая запрашивает ввод последовательности из 10 целых чисел. Программа должна:
-
Выводить максимальное по модулю значение последовательности;
-
Вычислять сумму между первым и последним отрицательными элементами (с учетом первого и последнего отрицательных элементов и без учета первого и последнего отрицательных элементов). В случае, если введен один отрицательный элемент или все элементы положительные, необходимо выводить соответствующее сообщение;
-
Выводить массив без отрицательных и нулевых элементов.
Решение:
Блок-схема
For i=0 to 10


x=i+1



вых
I+1
For i=0 to 10





вых
I+1



I+1
mod=abs(a[i])
Введите i
a[i]>max
max=a[i]
For i=z; to x;
mod>maxsum;
max=mod


вых

For i=0 to 10




вых
I+1
mod=abs(a[i])



a[i]<0
For i=9 to 0


p=i+1


вых
I-1
k=i+1;

a[i]<0

for i=p to k-1
p=i+1



вых
I+1


For i=p-1 to k;

sum1+a[i]



вых
I+1

For i=0 to 10
a[i]<0

j=j+1


вых

j>=2


I+1
Max,sum,sum1

For i=0 to 10

A[i]<0


A[i]

max

For i=0 to 10
A[i]>0



A[i]


I+1

I+1

Конец
Код программы:
#include "stdafx.h"
#include <conio.h>
#include <iostream>
#include <math.h> //подключаемые библиотеки
Int _tmain()
{
int i,sum=0,k=0,max=0,sum1=0,mod=0,p=0,j=0;
int a[10];
float pr=1; //ввод данных
const char* locale = setlocale(LC_ALL,"");
printf ("Вычисление максимального по модолю числа и\nвычисление суммы между первым и последним отрицательными элементами \n");
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++) //определение суммы элементов без отрицательных и нулевых элементов
sum1=sum1+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", sum1);
printf("Массив без учёта отрицательных и нулевых значений:");
for (i=0;i<10;i++)
if (a[i]>0)
printf(" %i ",a[i]);
}
else
{
printf("максимальное значение по модулю: %i \n",max);
printf("Отрицательных элементов нет!\n");
printf("Массив без учёта отрицательных и нулевых значений:");
for (i=0;i<10;i++)
if (a[i]>0)
printf(" %i ",a[i]); //вывод данных
}
_getch();
}
Практика №3
Программа 1:
Написать программу, которая запрашивает ввод строки и образец символа. Ввод осуществляется на латинице. Программа должна:
-
Вывести строку без указанного символа
-
Подсчитать, сколько раз символ был удален из строки.
-
Если образец отсутствует в строке, программа должна выводить соответствующее сообщение.
Решение
Блок-схема:
Начало

A,b,I,j
Введите строки


a

Введите удаляемый элемент

c

A[i]≠0


A[i]

A[i]=b
Строка без символа

j+1,i+1


вых