Кодирование алгоритма программы


При самостоятельном желании понять тему " Кодирование алгоритма программы " вам поможет наш ресурс. Для вас наши специалисты подготовили материал, изучив который вы будете разбираться в ней уровне профессионала. А если у вас останутся вопросы, то задать их вы сможете прямо на сайте написав в чат онлайн-консультанта.

оформить заявку

Слишком сложно? Тогда запросите консультацию специалиста!

Наша компания занимается тем, что помогает студентам выполнять различные учебные работы на заказ. Вы можете ознакомиться с перечнем выполняемых работ, а так же с их стоимостью на странице с ценами.

ознакомиться с условиями

// Sem3Lab02PROG.cpp : Defines the entry point for the console application.

 

#include "stdafx.h"

#include <iostream>

#include "malloc.h"

 

using namespace std;

 

void create(unsigned long* arr, int n);

void show(unsigned long* arr, int n);

unsigned long* sort(unsigned long* arr, int n);

unsigned long maxEvenNum(unsigned long* arr, int n);

bool even(unsigned long element);

void insert_s(unsigned long arr[], int &n, unsigned long newElement);

bool simple(unsigned long element);

void del_s(unsigned long* arr, int &n);

 

int main()

{

setlocale(0, "Russian");

 

//=====================================================//

 

int n = 0;

int answer1 = 100;

unsigned long array1[100];

while (answer1 != 0) {

system("cls");

cout << "Лабораторная работа №2 ИКБО-07-16 Шамрай К.К. Вариант 5" << endl << endl;

cout << "Задание 1" << endl;

cout << "Меню ";

cout << "1) Заполнить массив ";

cout << "2) Вывести массив ";

cout << "3) Отсортировать массив методом простого выбора ";

cout << "4) Вставить новый элемент перед каждым элементом, у к-го четное кол-во цифр ";

cout << "5) Удалить все числа массива, следующие за простым числом ";

cout << "6) Найти максимальное число среди четных чисел массива ";

cout << "0) Выход ";

cout << "Ваш выбор: ";

cin >> answer1;

system("cls");

cout << "Лабораторная работа №2 ИКБО-07-16 Шамрай К.К. Вариант 5" << endl << endl;

switch (answer1)

{

case 1: {

cout << "Введите кол-во элементов в массиве: ";

cin >> n;

cout << "Введите элементы массива: ";

create(array1, n);

system("pause");

break;

}

case 2: {

cout << "Вывод массива ";

show(array1, n);

system("pause");

break;

}

case 3: {

cout << "Отсортированный массив ";

show(sort(array1, n), n);

system("pause");

break;

}

case 4: {

unsigned long newEl = 0;

cout << "Введите новый элемент: ";

cin >> newEl;

insert_s(array1, n, newEl);

show(array1, n);

system("pause");

break;

}

case 5: {

cout << "Массив с удаленными числами ";

del_s(array1, n);

show(array1, n);

system("pause");

break;




}

case 6: {

cout << "Максимальное четное число массива: ";

if (maxEvenNum(array1, n) == 1) {

cout << "Четных чисел в массиве нет ";

}

else {

cout << maxEvenNum(array1, n) << " ";

}

system("pause");

break;

}

default:

break;

}

}

 

system("pause");

return 0;

}

 

void create(unsigned long* arr, int n) { //заполнение массива

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

cin >> arr[i];

}

}

 

 

void show(unsigned long* arr, int n) { //вывод массива

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

cout << arr[i] << " ";

}

cout << endl;

}

 

Задание 2

Условие задания

Дан динамический массив из целых беззнаковых элементов.

· Вставить новый элемент перед каждым элементом, у которого четное количество цифр.

· Удалить все числа массива, следующие за простым числом.

· Найти максимальное число среди четных чисел массива.

· Для сортировки массива использовать алгоритм линейного выбора элемента.

Декомпозиция

Задачу следует разбить на следующие подзадачи:

· Проверка количества цифр в числе на четность

· Вставка нового элемента перед каждым, у которого четное количество цифр

· Проверка, является ли число простым

· Удаление все числа массива, следующие за простым числом

· Поиск максимального числа среди четных чисел массива

· Сортировка массива методом линейного выбора

Определение функций

unsigned long* sort(unsigned long* arr, int n) { //сортировка массива методом прямого выбора



int imin;

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

imin = i;

for (int j = i + 1; j < n; j++) {

if (arr[j] <= arr[imin]) {

imin = j;

}

}

swap(arr[i], arr[imin]);

}

return arr;

}

 

unsigned long maxEvenNum(unsigned long* arr, int n) { //максимальное четное число массива

int max, i = n - 1;

bool flag = false;

arr = sort(arr, n);

if (!n) {

return 1;

}

else {

while (!flag) {

if (!(arr[i] % 2)) {

max = arr[i];

flag = true;

}

else {

i--;

}

}

}

if (n < 1) {

return 1;

}

else if (flag) {

return max;

}

else

{

return 1;

}

}

 

bool even(unsigned long element) { //проверка эл-та на четность кол-ва цифр

int calc = 0;

while (element != 0) {

element /= 10;

calc++;

}

return (calc % 2) ? false : true;

}

 

void insert_d(unsigned long* arr, int &n, unsigned long newElement) {

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

if (even(arr[i])) {

//realloc(arr, (n + 1) * sizeof(unsigned long));

arr = (unsigned long*)realloc(arr, (n + 1) * sizeof(unsigned long));

n++;

for (int j = n; j > i; j--) {

arr[j] = arr[j - 1];

}

arr[i] = newElement;

i++;

}

}

}

 

bool simple(unsigned long element) { //простое ли число

if (element == 0 || element == 1) {

return false;

}

else if (element == 2) {

return true;

}

else {

int calc = 0;

for (int i = 2; i <= element / 2; i++) {

if (!(element % i)) {

calc++;

}

}

return (calc >= 1) ? false : true;

}

}

 

void del_d(unsigned long* arr, int &n) { //удалить элементы, следующие за простым числом

int calc = n;

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

if (simple(arr[i])) {

calc--;

//realloc(arr, (n - calc) * sizeof(unsigned long));

arr = (unsigned long*)realloc(arr, (n - calc) * sizeof(unsigned long));

break;

}

else {

calc--;

}

}

n -= calc;

}

 


Хм, так же просматривали

Заказ

ФОРМА ЗАКАЗА

Бесплатная консультация

Наша компания занимается написанием студенческих работ. Мы выполняем: дипломные, курсовые, контрольные, задачи, рефераты, диссертации, отчеты по практике, решаем тесты и задачи, и многие другие виды заданий. Чтобы узнать стоимость, а так же условия выполнения работы заполните заявку на этой странице. Как только менеджер увидит ваше сообщение, он сразу же свяжется с вами.

Этапность

СОПРОВОЖДЕНИЕ КЛИЕНТА

Получить работу можно всего за 4 шага

01
Оставляете запрос

Оформляете заказ работы, заполняя форму на сайте.

02
Узнаете стоимость

Менеджер оценивает сложность. Узнаете точную цену.

03
Работа пишется

Оплачиваете и автор приступает к выполнению задания.

04
Забираете заказ

Получаете работу в электронном виде на вашу почту.

Услуги

НАШ СЕРВИС

Что мы еще делаем?

icon
Эссе

от 480 рублей

ПОДРОБНЕЕ
icon
Семестровые работы

от 1480 рублей

ПОДРОБНЕЕ
icon
Домашние работы

от 180 рублей

ПОДРОБНЕЕ
icon
Чертежи

от 280 рублей

ПОДРОБНЕЕ
icon
Решение задач

от 180 рублей

ПОДРОБНЕЕ
icon
Презентации

от 280 рублей

ПОДРОБНЕЕ