русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Задачи и упражнения.

1. Задан массив точек плоскости, т. е. два одномерных массива одинаковой фиксированной размерности X[n] и Y[n], где (Xi, Yi) — координаты i-й точки. Составить следующие функции:

1) логическую функцию Test для определения, принадлежит ли точка с координатами (x, y) k-й четверти;

2) функцию Num, которая с помощью первой функции в массиве точек определяет их количество в k-й четверти;

3) функцию main, которая с помощью второй функции находит количество точек в каждой четверти.

const n = 10;

bool Test (float , float , unsigned );

unsigned Num (float x[], float y[],unsigned k);

main()

{ float X[n]={1.1, 2.2, 3, 44, 0.5, -6.6, -0.7, -88, -9, -10},

Y[n]={11, 0.2, 33, 0.4,-5.5, 66, 77, -8.8,-9.9,-10};

cout<<" Number of points in\n";

for(unsigned K=1; K<=4;K++)

cout<<" "<<K<<" quarter "<<Num(X,Y,K)<<endl;

getch(); return 0;

}

bool Test (float u, float v, unsigned k)

{ switch (k)

{ case 1: return u>0 && v>0;

case 2: return u<0 && v>0;

case 3: return u<0 && v<0;

case 4: return u>0 && v<0;

}

}

unsigned Num (float x[], float y[], unsigned k)

{ unsigned number=0;

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

if (Test (x[i], y[i], k)) number++;

return number;

}

2. В одномерном вещественном массиве найти среднее значение. Числа из отрезка [a, b] увеличить в 10 раз, а остальные оставить без изменения. Составить и использовать следующие функции: ввод массива; вывод массива; вычисление среднего значения элементов массива; изменение массива; функцию main для проверки названных функций.

void INP(float x[], int n);

void OU1(float x[], int n);

float AVER(float x[], int n);

void CHANGE(float a, float b, float x[], int n);

int main()

{ const N=5; float arr[N], a, b; INP(arr, N);

cout<<"Исходный массив"<<endl; OU1(arr, N);

cout<<"Среднее значение \t"<<AVER(arr, N)<<endl;

cout<<"a="; cin>>a; cout<<"b="; cin>>b;

CHANGE(a, b, arr, N);

cout<<"Измененный массив"<<endl; OU1(arr, N);

getch(); return 0;

}

void INP(float x[], int n)

{ for (int i=0; i<n; i++)

{ cout<<"enter "<<(i+1)<<" element of array -\t";

cin>>x[i]; clrscr();

}

}

void OU1(float x[], int n)

{ for (int i=0; i<n; i++)

cout<<(i+1)<<" element of array \t"<<x[i]<<endl;

}

float AVER(float x[], int n)

{ float s=0;

for (int i=0; i<n; i++, s+=x[i]);

s=s/n; return s; }

void CHANGE(float a,float b, float x[], int n)

{ for (int i=0; i<n; i++)

if(a<=x[i] && x[i]<=b)

x[i]*=10;

}

3. В одномерном целочисленном массиве найти, сколько раз повторяется наибольшее число, сколько раз повторяется наименьшее и вывести жёлтым цветом то из них, которое повторяется чаще. Например, в массиве {99, 8, 99, 99, 2} наибольшее число 99 повторяется чаще (три раза), чем наименьшее 2, которое встречается только один раз. Поэтому число 99 выделяем жёлтым цветом. Для другого массива {99, 7, 99, 7, 7} жёлтым цветом выделим число 7.

Составим и используем следующие функции: ввод массива (ReadArr); обычный, не “цветной” вывод массива (WriteArr); функцию ColorWriteArr, которая выводит число w массива цветом color1, остальные числа массива — цветом color2; поиск наиболь­шего и наименьшего элементов массива (MaxMin); функцию Num, которая определяет, сколько раз число w повторяется в массиве; main, проверяющую перечисленные выше функции.

void ReadArr(int [], int );

void WriteArr(int [], int );

void ColorWriteArr(int a[], int , int , int , int );

void MaxMin(int [], int , int &mx, int &mn);

int Num(int [], int , int );

main()

{ const n = 5; int a[5], MyMax, MyMin, num1, num2;

clrscr(); ReadArr(a, n);

WriteArr(a, n); MaxMin(a, n, MyMax, MyMin);

num1 = Num(a, n, MyMax); num2 = Num(a, n, MyMin);

cout<<"\nMyMax "<<MyMax<<" MyMin "<<MyMin<<endl;

cout<<"\nNumMax "<<num1<<" NumMin "<<num2<<endl;

if (num1>num2) ColorWriteArr(a, n, MyMax, 14, 11);

else if (num1<num2) ColorWriteArr(a, n, MyMin, 14, 11);

else cout<<" Number of max = number of min ";

getch(); return 0;

}

void ReadArr(int x[], int size)

{ for (int i=0; i<size; i++)

{ cout<<"a["<<i<<"]="; cin>>x[i];

}

}

void WriteArr(int x[], int size)

{ for (int i=0; i<size; i++) cout<<x[i]<<" ";

printf("\n");

}

void MaxMin(int x[], int size, int& mx, int& mn)

{ mx=x[0]; mn=x[0];

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

if (x[i]<mn) mn = x[i];

else if (x[i]>mx) mx = x[i];

}

int Num(int x[], int size, int w)

{ int k=0;

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

if (x[i] == w) k++;

return k;

}

void ColorWriteArr(int x[], int size, int w, int color1, int color2)

{ for (int i=0; i<size; i++)

{ if (x[i] == w) textcolor(color1);

else textcolor(color2);

cprintf("%5d ", x[i]);

}

printf("\n");

}

4. Запрограммировать в виде функции следующий алгоритм сортировки по убыванию. На первом шаге находим наибольший элемент всего массива, его номер k и переставляем x[0] c x[k]. На втором шаге находим наибольший элемент, начиная со второго элемента (с x[1]), его номер k и переставляем x[1] c x[k]. На третьем шаге находим наибольший элемент, начиная с третьего элемента (с x[2]), его номер k и переставляем x[2] c x[k]. Так продолжаем до конца массива.

5. Дан одномерный вещественный массив a[n]. Вычислить

Вариант 1) Составить одну функцию типа void с тремя результатами, которая вычисляет наибольшее число массива, сумму всех его элементов и их произведение.

Вариант 2) Составить следующие три вещественные функции, каждая из которых имеет один результат: 1) вычисление наибольшего числа массива, 2) вычисление суммы всех его элементов, 3) нахождение их произведения.

В головной функции определить массив и с помощью одной или трех функций вычислить f.

6.Ввести два одномерных массива. В каждом из них найти наибольшее количество одинаковых подряд идущих элементов и этот элемент.

7.Ввести три одномерных массива — a[n],b[n],c[n]. Получить массив d[n] по формуле d=(a+b) ∙ (b+c), где сложение и умножение выполняются поэлементно. Составить и использовать следующие функции: для ввода массива, поэлементного сложения двух массивов, их поэлементного умножения, функцию main.

8.Рассортировать массив по возрастанию первых двух цифр числа. Составить и использовать следующие функции: для ввода массива, нахождения первой и второй цифры для одного целого числа, построения массива первых и вторых цифр, сортировки массивов, вывода массивов в виде таблицы, функцию main.

Замечание. В следующих задачах, как и в предыдущих, проект разбить на несколько функций.

9.Рассортировать массив следующим образом: сначала должны размещаться палиндромы по возрастанию их значений, а затем не палиндромы тоже по возрастанию их значений. Палиндром – это целое симметричное число, которое одинаково читается слева направо и справа налево.

10.Рассортировать целочисленный массив по убыванию следующих параметров числа:

a) количества единиц в двоичном представлении числа;

б) общего количества пар соседних различных цифр в двоичном представлении числа. Например, 2510 = 110012 имеет две такие пары, а число 7410 = 10010102 содержит пять таких пар;

в) количества букв в шестнадцатеричном представлении числа.

11.Массив точек плоскости рассортировать по убыванию первой координаты.

12.Даны массивы a[5], b[5], c[5]. Вычислить

13.Даны два массива x[10] и y[10]. Построить третий массив z[10]:

Составить и использовать следующие функции: вычисление наименьшего из двух чисел r = min(u, v); вычисление r = max(u, v); построение массива; функцию main().

Просмотров: 514


Вернуться в оглавление



Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.