С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

C++

Войти
Регистрация
Восстановить пароль
 
profile
1 / 1 / 0
Регистрация: 25.11.2011
Сообщений: 40
#1

переделать программу ,пожалуйста - C++

08.06.2014, 12:47. Просмотров 248. Ответов 0
Метки нет (Все метки)

#include <iostream>//cout,cin
#include <chrono>//сверхточные часы
#include <random>//rand()

//функция для вывода массива
void show(int *arr, int N)
{
for (int i = 0; i < N; i++)
{
std::cout <<arr[i] <<'\t';//вывод элемента
}
std::cout <<std::endl;//перенос строки
}

//функция для заполнения массива
void fill_arr(int* arr, int N)
{
srand(std::chrono::high_resolution_clock::now().time_since_epoch().count());//создаем зерно случайности, инициализируем генератор сл. значений
for (int i = 0; i < N; i++)
{
*arr = rand();
*arr++;
}
}

//Задать одномерный массив, состоящий из N элементов.
//Заполнить массив константами. Создать новый одномерный массив,
//поместив в него на место элементов с четными номерами элементы
//заданного массива с нечетными номерами и обнулив элементы нового
//массива с нечетными номерами
void lab2(int N)
{
unsigned int* arr1 = new unsigned int[N];//создается динамический массив размера N
fill_arr((int*)arr1, N);//заполняем
show((int*)arr1, N);//выводим на экран
unsigned int*arr2 = new unsigned int[N];//создаем новый динамический массив размера N
__asm{
xor EAX, EAX ;обнуление AX
MOV ECX, N ;ECX=N //счетчик цикла для обхода массива
MOV ESI, arr1 ;указатель на первый массив
MOV EDI, arr2 ;указатель на второй массив
loop1: ;начало цикла, происходит копирование первого массива во второй
mov EAX, [ESI] ;EAX = значение ESI
mov [EDI], EAX ;Значение EDI = EAX
add ESI, 4 ;сдвигаем указатель на первый массив на 4 байта, то есть переходим к след. элементу массива
add EDI, 4 ;аналогичная ситуация
loop loop1 ;конец цикла
mov ECX, N ;восстанавливаем счетчик цикла
dec ECX ;уменьшаем на 1
mov EDI, arr2 ;восстанавливаем указатель на второй массив
mov EBX, 0 ;заносим в регистр 0
loop2: ;начало цикла, обнуляем нечетные элементы цикла
mov [EDI], EBX ;элемент обнуляем
add EDI, 8 ;сдвигаем указатель на 8 байт, то есть на 2 элемента,
;перепрыгиваем через элемент, так как работать нам нужно
;только с нечетными
sub ECX, 2 ;уменьшаем счетчик на 2 элемента
jns loop2 ;проверяем не стало ли значение счетчика отрицательным
;то есть установлен флаг знака в регистре состояний
}
show((int*)arr2, N);//вывод 2 массива
}


void main()
{
lab2(5);
system("pause");
}

данный код выполняет :" Задать одномерный массив, состоящий из N элементов. Заполнить массив константами. Создать новый одномерный массив, поместив в него на место элементов с четными номерами элементы заданного массива с нечетными номерами и обнулив элементы нового массива с нечетными номерами"

нужно переделать на:"Задать одномерный массив, состоящий из N элементов. Заполнить массив константами. Создать новый одномерный массив, поместив в него на место элементов с нечетными номерами элементы заданного массива с нечетными номерами и заполнив элементы нового массива с четными номерами максимальными значениями констант"

помогите плиз
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.06.2014, 12:47
Здравствуйте! Я подобрал для вас темы с ответами на вопрос переделать программу ,пожалуйста (C++):

Сделайте программу на C или C++ пожалуйста!! - C++
Написать программу, которая вычисляет среднее арифметическое элементов, находящихся на побочной диагонали двумерного массива и заменяет...

Переделать код на C++ Builder! пожалуйста - C++ Builder
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls,...

Помогите пожалуйста переделать консольное приложение в обычное с эдитом,кнопкой и выводом результата в мемо - C++ Builder
Задание: В заданном предложении найти пару слов,из которых одно является обращением другого. Помогите пожалуйста переделать консольное...

Переделать программу - C++ Builder
Здравствуйте! Подскажите по такому вопросу есть код #include &lt;windows.h&gt; #include &lt;lm.h&gt; #include &lt;stdio.h&gt; #include...

Помогите немного переделать программу - C++ Builder
Вот код поисковой программы void Scan(AnsiString Path) { TSearchRec sr; if(FindFirst(Path + &quot;*.*&quot;, faAnyFile, sr) == 0) ...

Переделать программу с консоли на форму - C++ Builder
Перевести на форму з консоли. Задание звучит так: Из строки вывести большое и маленькое слово #include &lt;vcl.h&gt; #pragma hdrstop ...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.06.2014, 12:47
Привет! Вот еще темы с ответами:

Переделать консольную программу в визуальную - C++ Builder
Есть полностью готовый код,но мне его нужно вставить в программу,помогите! #include &lt;iostream&gt; #include &lt;cmath&gt; float...

Переделать программу под С++ Builder - C++ Builder
Данные натуральные числа n и m; найти НОД (n, m). Составить рекурсивную функцию вычисления НОД, основанную на соотношении НОД (n, m) = НОД...

переделать с консольной программы в программу на форме - C++ Builder
#include &quot;iostream&quot;//стандартная библиотека using namespace std;//пространство стандартных имен //---Главная функция---// int...

Переделать программу нахождения циклических автокорреляционных функций (АКФ) бинарных последовательностей под числовые п - C++ Builder
Помогите мне пожалуйста!! у меня есть программа вычисления и построения графиков циклических автокорреляционных функций (АКФ) бинарных...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.