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

10)Написать фрагмент программы, заменяющий в произвольной квадратной матрице строку с минимальным элементом матрицы нулями.

void ExecMatrix( int mas[3][3], int N )

{

int nMinElem = mas[0][0];

int nNumStr = 0;

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

for( int j = 0; j < N; j++ )

if( nMinElem > mas[i][j] )

{

nMinElem = mas[i][j];

nNumStr = i;

}

for( int j = 0; j < N; j++ )

mas[nNumStr][j] = 0;

}

13)Написать функцию, принимающую в качестве параметров три целых числа и возвращающую наибольшее из них.

int ReturnMaxParam( int A, int B, int C )

{

int n = (A>B)?(A):(B);

return( (C>n)?(C):(n) );

}

14)Данные о товарах (наименование, цена) хранятся в массиве структур. Написать фрагмент программы, выводящий на экран прайс-лист в порядке возрастания цены (от дешевого к дорогому).

// привел полный исходник программы

#include <stdio.h>

#include <stdlib.h>

#include <locale.h>

#include <string.h>

struct Tovar

{

char szName[50];

float cena;

};

void Execute( Tovar *mas, int N )

{

float nSrednCena = 0;

int nCout = 0;

// сортировка

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

for( int j = i; j < N; j++ )

{

if( mas[i].cena > mas[j].cena )

{

Tovar buf = mas[i];

mas[i] = mas[j];

mas[j] = buf;

}

}

printf( "Прайс лист:\n" );

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

{

printf( "%s\n", mas[i].szName );

printf( "%f\n", mas[i].cena );

printf( "-----------------\n" );

}

system( "pause" );

}

int main( void )

{

setlocale( LC_ALL, "rus" );

// тут просто вношу данные

Tovar mas[3];

strcpy( mas[0].szName, "Майонез" );

mas[0].cena = 50;

mas[1].cena = 100;

strcpy( mas[1].szName, "кетчуп" );

mas[2].cena = 10;

strcpy( mas[2].szName, "Мясо" );

// обработка

Execute( mas, 3 );

return(0);

}

15)Оформить в виде функции фрагмент программы, меняющий местами максимальный и минимальный элементы целочисленного массива. Массив передать в функцию через параметры функции.

void MasExec( int *mas, int N )

{

int nMaxIndex = 0, nMinIndex = 0;

for( int i = 0; i < N; i++ ) // поиск минимального и максимального элемента

{

if( mas[i] > mas[nMaxIndex] )

nMaxIndex = i;

if( mas[i] < mas[nMinIndex] )

nMinIndex = i;

}

// обмениваю

int nBuf = mas[nMaxIndex];

mas[nMaxIndex] = mas[nMinIndex];

mas[nMinIndex] = nBuf;

}

16)Написать фрагмент программы, печатающий на экране среднее арифметическое элементов побочной диагонали квадратной матрицы.

void ExecMatrix( int **mas, int N )

{

float nSredn = 0;

for( int i = 0, j = N - 1; (i < N) && (j>=0); i++, j-- )

nSredn += mas[i][j];

nSredn /= (float)N;

printf( "Среденее аврифмет. побочной диагонали = %f\n", nSredn );

}

17)Написать фрагмент программы, определяющий, является ли произвольная «прямоугольная»(не, ну чо за хуйня в задании!!!!, только КВАДРАТНАЯ) матрица симметричной относительно главной диагонали.

int SimmetricMatrx( int **mas, int N )

{

int simm = 1;

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

for( int j = 0; j < N; j++ )

if( mas[i][j] != mas[j][i] )

simm = 0;

printf( "Матрица %s\n", (simm == 1)?("симметричная"):("антисимметрична") );

return( simm );

}

18)Дана строка, содержащая текст. Написать фрагмент программы, выводящий на экран встречающиеся в строке цифры.

void PrintNumeric( char *str )

{

for( int i = 0; i < strlen( str ); i++ ) // просматр.всю строку

{

if( isdigit( str[i] ) ) // функция isdigit() возвр.1 если это цифра

printf( "%c ", str[i] );

}

}

19)Написать фрагмент программы, удаляющий i-й элемент из массива целых чисел размера N, i <= N. Фрагмент оформить в виде функции, массив передать в функцию через параметры.

// N - передается как ссылка, т.к. оно содержит значение колличества

// элементов, это изменяемый параметр

void DelElem( int *mas, int nDel, int &N )

{

if( nDel == N )

{

N--;

}

else

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

mas[i] = mas[i+1];

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]