- •Часть 2
- •Часть 1
- •Задачи для самостоятельной работы № 2 и 3 Примеры решения задач
- •Задачи для самостоятельной работы № 2 и 4 Примеры решения задач
- •Задачи для самостоятельной работы № 2 и 4 Примеры решения задач
- •Задачи для самостоятельной работы № 4 и 5 Примеры решения задач
- •Задачи для самостоятельной работы № 4-а и 4-б Примеры решения задач
- •Задачи для самостоятельной работы № 3 Примеры решения задач
- •Задачи для самостоятельной работы № 3 Примеры решения задач
- •Задачи для самостоятельной работы № 2 Примеры решения задач
Задачи для самостоятельной работы № 4-а и 4-б Примеры решения задач
Задание 5.4-А. Селективная обработка строки (столбца) матрицы, удовлетворяющей заданному условию.
Вычислить сумму отрицательных чисел строки, у которой второй элемент четный.
Словесный алгоритм.
Шаг 1. Организовать ввод с клавиатуры заданной матрицы в виде вложенных циклов с параметром.
Шаг 2. Организовать цикл нахождения заданной строки.
Шаг 3. Если x[i,2] четный, тогда идем на шаг 4, иначе возвращаемся на шаг 2.
Шаг 4. Задать начальное значение суммы : s = 0.
Шаг 5. Организовать цикл с параметром для обработки массива
Шаг 6. Если Х[i,j]<0, тогда s=s+x[i,j], если условие не выполняется, возвращаемся на шаг 2.
Шаг 7. Выводим найденную сумму на экран.
Шаг 8. Остановить выполнение программы
Листинг программы.
#include<stdio.h>
#include<math.h>
#include<conio.h>
#define n 4
#define m 4
void main(){
clrscr();
int a[n][m],s,i,j;
printf("Введите значения элементов матрицы \n");
for(i=0;i<n;i++)
for(j=0;j<m;j++) scanf("%i",&a[i][j]);
clrscr();
printf("\nВведенный массив \n");
for(i=0;i<n;i++)
{ for(j=0;j<m;j++) printf(" %i ",a[i][j]);
printf("\n");
}
printf("\n");
int ks=0;
for(i=0;i<n;i++)
if(a[i][2]%2==0)
{ ks++;
s=0;
for(j=0;j<m;j++)
if(a[i][j]<0) s+=a[i][j];
printf("\ns[%i]=%i ",i,s);
}
if (ks==0) printf("\nСтрок, отвечающих условию в матрице нет");
getch();
}
Задание 5.4-Б. Селективная обработка строки (столбца) матрицы, удовлетворяющей заданному условию.
Вычислить произведение отрицательных чисел строки, у которой количество нечетных элементов четно.
Словесный алгоритм.
Шаг 1. Организовать ввод с клавиатуры заданной матрицы в виде вложенных циклов с параметром.
Шаг 2. Установить начальное значение счетчика строк, отвечающих условию ks=0;
Шаг 3. Организовать цикл нахождения заданной строки.
Шаг 4. Установить начальное значение счетчика нечетных элементов.
Шаг 5. Если x[i,j] нечетный, тогда значение счетчика увеличиваем на 1.
Шаг 6. Если после окончания цикла в строке значение счетчика k четно тогда идем на шаг 7, если нет, то возвращаемся на шаг 3.
Шаг 7. Увеличиваем значение счетчика ks на 1 и устанавливаем начальное значение произведения р=1.
Шаг 8. Организовать цикл с параметром для нахождения произведения.
Шаг 9. Если Х[i,j]<0, тогда р=р*x[i,j], если условие не выполняется, возвращаемся на шаг 8.
Шаг 10. Выводим найденное произведение на экран, если строки не окончены, то возвращаемся на шаг 3, в противном случае переходим на шаг 11.
Шаг 11. Если значение счетчика ks=0, тогда выводим сообщение о том, что строк отвечающих условию нет.
Шаг 12. Остановить выполнение программы
Листинг программы.
#include<stdio.h>
#include<math.h>
#include<conio.h>
#define n 4
#define m 4
void main(){
clrscr();
int a[n][m],p,k,i,j;
printf("Введите значения элементов матрицы \n");
for(i=0;i<n;i++)
for(j=0;j<m;j++) scanf("%i",&a[i][j]);
clrscr();
printf("\nВведенный массив \n");
for(i=0;i<n;i++)
{ for(j=0;j<m;j++) printf(" %i ",a[i][j]);
printf("\n");
}
printf("\n");
int ks=0;
for(i=0;i<n;i++)
{ k=0;
for(j=0;j<m;j++)
if(a[i][2]%2==0) k++;
if(k%2==0)
{ ks++;
p=1;
for(j=0;j<m;j++)
if(a[i][j]<0) p*=a[i][j];
printf("\np[%i]=%i ",i,p);
}
}
if (ks==0) printf("\nСтрок, отвечающих условию в матрице нет");
getch();
}
Практическая работа № 6
Тема: Использование подпрограмм для решения задач.
Цель: Закрепить на практике теоретические знания по использованию подпрограмм.
Порядок выполнения практической работы
-
Изучите теоретический материал. [4, стр.132-144].
-
Ознакомьтесь с примерами программ.
-
Составьте алгоритм и программу по указанному варианту задания, используя «Сборник задач для практических работ».
-
Отладьте программу и выполните расчеты на ПК.
-
Оформите отчет о выполненной работе.
Содержание отчета
-
Тема работы.
-
Цель работы.
-
Условия задач.
-
Листинг программы.
-
Решение задачи на ПК.
-
Краткие выводы по работе.
Задачи для обязательного выполнения № 1 и 2.
Примеры решения задач.
Задание 6.1. Ввод, вывод исходных данных и их обработку в виде функций (процедур).
Вычислить количество четных элементов в массивах А, В, С.
Словесный алгоритм.
Шаг 1. Организовать ввод с клавиатуры заданных массивов в виде процедур.
Шаг 2. Организовать нахождение количества четных элементов в виде функций.
Шаг 3. Организовать вывод массивов в виде процедур.
Шаг 4. Выводим найденное значение на экран.
Шаг 5. Остановить выполнение программы
Листинг программы.
#include<stdio.h>
#include<math.h>
#include<conio.h>
int kol(const int* mas, const int n);
int const n=10;
void main(){
clrscr();
int a[n],b[n],c[n],k,i,j;
printf("\nВведите значения элементов матрицы A\n");
for(i=0;i<n;i++) scanf("%i",&a[i]);
printf("\nВведите значения элементов матрицы B\n");
for(i=0;i<n;i++) scanf("%i",&b[i]);
printf("\nВведите значения элементов матрицы C\n");
for(i=0;i<n;i++) scanf("%i",&c[i]);
clrscr();
printf("\nВведенный массив A\n");
for(i=0;i<n;i++) printf(" %i ",a[i]);
printf("\n");
printf("\nВведенный массив B\n");
for(i=0;i<n;i++) printf(" %i ",b[i]);
printf("\n");
printf("\nВведенный массив C\n");
for(i=0;i<n;i++) printf(" %i ",c[i]);
printf("\n");
k=kol(a,n)+kol(b,n)+kol(c,n);
printf("\nk=%i",k);
getch();
}
int kol(const int* mas, const int n){
int kl=0;
for(int i=0;i<n;i++)
if(mas[i]%2==0) kl++;
return kl;
}
Задание 6.2. Даны массивы X(8), Y(8), Z(10), W(15), элементы которых определяются по формулам:
;
;
;
.
Подсчитать общее количество положительных элементов массивов X, Y, W.
|
|
|
|
|
|
|
|
2 |
10 |
4 |
6 |
5 |
12 |
Словесный алгоритм.
Шаг 1. Организовать ввод и нахождение количества положительных элементов в виде функции.
Шаг 2. Подсчитать общее количество положительных элементов, сложив результаты выполнения функций.
Шаг 3. Выводим найденное значение на экран.
Шаг 4. Остановить выполнение программы
Листинг программы.
#include<stdio.h>
#include<math.h>
#include<conio.h>
int kol(float* mas, int z);
int const n=8;
void main(){
clrscr();
float x[n],y[n],w[n];
int i,j,k,kx,ky,kw;
int a1=2,a2=10,b1=4,b2=6,d1=5,d2=12;
printf("\nМассив X\n");
for(i=0;i<n;i++)
{x[i]=a1*pow(i,2)-a2*(5-i);
printf(" %6.2f ",x[i]);
}
printf("\n");
printf("\nМассив Y\n");
for(i=0;i<n;i++)
{y[i]=b1*sin(2*i)+b2*exp(i-5);
printf(" %6.2f ",y[i]);
}
printf("\n");
printf("\nМассив W\n");
for(i=0;i<n;i++)
{w[i]=d1*abs(0.1*i)+d2*pow(cos(i-2.5),3);
printf(" %6.2f ",w[i]);
printf("\n");
k=kol(x,n)+kol(y,n)+kol(w,n);
printf("\nk=%i",k);
getch();
}
int kol(float* mas, int z)
{
int kl=0;
for(int i=0;i<n;i++)
if(mas[i]>0) kl++;
return kl;
}
