1 / 1 / 0
Регистрация: 25.11.2011
Сообщений: 40
1

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

08.06.2014, 12:47. Показов 335. Ответов 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_e poch().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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.06.2014, 12:47
Ответы с готовыми решениями:

расскажите пожалуйста как переделать программу!
Условие: Функция подбирает одного случайного пациента доктору. Всего 20 пациентов и 5 врачей ....

расскажите пожалуйста как переделать программу!
Условие: Дана числовая матрица $matrix. С помощью цикла for совершить перебор матрицы. Если...

Помогите пожалуйста переделать эту программу с процедурами
Здравствуйте!Помогите пожалуйста переделать эту программу с процедурами!ЗАРАНЕЕ ВСЕМ СПАСИБО! ...

Подскажите пожалуйста как программу с формой переделать в консольную?
Здравствуйте! Столкнулся с такой проблемой, есть программа public partial class FormMy : Form ...

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.06.2014, 12:47

Пожалуйста, помоите переделать программу с Turbo Prolog на Visual Prolog
DOMAINS l_i=integer* l_s=string* i=integer s=string c=char structura=str(i,s) %Структура...

Нужно переделать программу,написанную на Turbo Pascal в ту,чтобы работала на Pascal ABC.NET пожалуйста
program lab3; uses Crt; const Output_File_Name = 'output.txt'; { ima faila dlya vivoda...

Нужно переделать программу,написанную на Turbo Pascal в ту,чтобы работала на Pascal ABC.NET пожалуйста
program lab2; uses Crt; const Nmax = 15; { MAX element mnozestva A } type T =...

Помогите пожалуйста переделать бд
Нужно эту бд переделать под бд вузы.именно переделать,а не новую создать.( из двух таблиц вузы и...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru