- •Лабораторная работа №1 Линейные и разветвляющиеся алгоритмы
- •Арифметические выражения
- •Операции с целыми числами
- •Логические выражения
- •Организация ветвлений в алгоритмах
- •Лабораторная работа №2 Циклические алгоритмы
- •Рекуррентные последовательности
- •Вычисление характеристик числовой последовательности
- •Определение свойства числовой последовательности
- •Формирование массива Пример
- •Вычисление характеристик массива
- •Модификация массивов
- •I часть
- •II часть Пример
- •III часть
- •Лабораторная работа №4 «Двумерные массивы»
- •Вывод элементов
- •Вычисление характеристик матриц
- •Модификация
- •Литература
Формирование массива Пример
Даны два массива A и B. Сформировать новый массив C из элементов, которые входят в массив А, но не входят в массив В
Вариант программы на языке С
#include <stdio.h>
#include <locale.h>
#include <stdlib.h>
#include <time.h>
#define NA 10
#define NB 10
#define NC NA
int main()
{
int a[NA], b[NB], c[NC];
int i, j, k = 0;
setlocale(LC_ALL, "");
/* Функция time возвращает текущее время в милисекундах.
Это значение передаётся в функцию srand для нициализации генератора псевдослучайных чисел.
*/
srand(time(0));
/* Функция rand возвращает псевдослучайное число из диапазона [0, 32767].
Для получения числа от 0 до 9 используется операция '%'.
*/
for(i = 0; i < NA; i++)
a[i] = rand() % 10;
for(i = 0; i < NB; i++)
b[i] = rand() % 10;
printf("Массив a:");
for(i = 0; i < NA; i++)
printf(" %d", a[i]);
printf("\n");
printf("Массив b:");
for(i = 0; i < NB; i++)
printf(" %d", b[i]);
printf("\n");
for(i = 0; i < NA; i++)
{
int flag = 1;
for(j = 0; j < NB; j++)
if(a[i] == b[j])
{
flag = 0;
break;
}
if(flag)
c[k++] = a[i];
}
printf("Массив c:");
for(i = 0; i < k; i++)
printf(" %d", c[i]);
printf("\n");
return 0;
}
Вариант программы на языке С++
#include <iostream>
#include <locale>
#include <cstdlib>
#include <ctime>
using namespace std;
/*
Даны два массива A и B. Сформировать новый массив C из элементов, которые входят в массив А, но не входят в массив В.
*/
int main()
{
const int na = 10, nb = 10, nc = na;
int a[na], b[nb], c[nc];
setlocale(LC_ALL, "");
// Функция time возвращает текущее время в милисекундах.
// Это значение передаётся в функцию srand для
// нициализации генератора псевдослучайных чисел.
srand(time(0));
// Функция rand возвращает псевдослучайное число из диапазона [0, 32767].
// Для получения числа от 0 до 9 используется операция '%'.
for(int i = 0; i < na; i++)
a[i] = rand() % 10;
for(int i = 0; i < nb; i++)
b[i] = rand() % 10;
cout << "Массив a:";
for(int i = 0; i < na; i++)
cout << " " << a[i];
cout << endl;
cout << "Массив b:";
for(int i = 0; i < nb; i++)
cout << " " << b[i];
cout << endl;
int k = 0;
for(int i = 0; i < na; i++)
{
bool flag = true;
for(int j = 0; j < nb; j++)
if(a[i] == b[j])
{
flag = false;
break;
}
if(flag)
c[k++] = a[i];
}
cout << "Массив c:";
for(int i = 0; i < k; i++)
cout << " " << c[i];
cout << endl;
return 0;
}
Задания для самостоятельного решения
Дан целочисленный массив A размера N<=15. Переписать в новый целочисленный массив B все элементы с порядковыми номерами, кратными трем, и вывести размер полученного массива B и его содержимое. Условный оператор не использовать.
Дан массив A размера N. Сформировать новый массив B того же размера по следующему правилу: элемент BK равен среднему арифметическому элементов массива A с номерами от K до N.
Дан массив A размера N. Сформировать новый массив B того же размера по следующему правилу: элемент BK равен сумме элементов массива A с номерами от 1 до K.
Дан целочисленный массив A размера N. Переписать в новый целочисленный массив B все четные числа из исходного массива (в том же порядке) и вывести размер полученного массива B и его содержимое.
Даны два массива A и B размера 5, элементы которых упорядочены по возрастанию. Объединить эти массивы так, чтобы результирующий массив C (размера 10) остался упорядоченным по возрастанию.
Дан массив A размера N. Сформировать новый массив B того же размера, элементы которого определяются следующим образом: BK = 2·AK,если AK < 5, AK/2 в противном случае.
Дан целочисленный массив A размера N. Переписать в новый целочисленный массив B того же размера вначале все элементы исходного массива с четными номерами, а затем — с нечетными: A2, A4, A6, …, A1, A3, A5, … . Условный оператор не использовать.
Даны два массива A и B одинакового размера N. Сформировать новый массив C того же размера, каждый элемент которого равен максимальному из элементов массивов A и B с тем же индексом.
Дан массив A размера N. Сформировать два новых массива B и C: в массив B записать все положительные элементы массива A, в массив C — все отрицательные (сохраняя исходный порядок следования элементов).
Даны два массива A и B. Сформировать новый массив C из элементов, которые входят в оба массива
