Напишите пожалуйста комментарии к программе на С + + , что к чему скажем так?

Информатика | 10 - 11 классы

Напишите пожалуйста комментарии к программе на С + + , что к чему скажем так.

Задание было такое : Заполните случайным образом массив (100 элементов) поочередно бук - вами латинского алфавита от A до H и символами цифр от 1 до 8.

Про - верьте, есть ли в данном массиве записи, сходные с записью ходов коня по шахматной доске, и, если есть заполните ими второй массив.

Выполните сортировку полученных массивов.

Для контроля результата сделайте распечатку массивов, в том числе исходного.

#include #include #include char string[101] ; / / вводимое число char * temp ; char tempWord[1024] ; void checkIdentical(char str[]) { int i, j, size ; char c ; bool br ; size = strlen(str) ; for(i = 0 ; i < ; size ; i + + ) { c = str[i] ; for(j = i + 1 ; j < ; size ; j + + ) { if(c = = str[j]) { printf("%s \ n", str) ; br = !

Br ; break ; } } if(br) { break ; } } } int main() { printf("enter \ n") ; gets(string) ; temp = strtok(string, " ") ; printf("words with identical letters : \ n \ n") ; for( ; temp !

= NULL ; ) { strcpy(tempWord, temp) ; checkIdentical(tempWord) ; temp = strtok(NULL, " ") ; } return 0 ; }.

Ответить на вопрос
Ответы (1)
Fanasev 28 сент. 2020 г., 06:26:47

Сама задачка порадовала, написал используя только функции С + + .

Задание реализовал полностью.

В прикреплённом файле с нормальным форматированием.

#include < ; iostream> ;

#include < ; random> ;

#include < ; vector> ;

#include < ; algorithm> ; / / Описывает шахматную нотацию.

Struct Notation ; / / Заполняет массив случайными шахматными ходами.

Void FillField(std : : vector< ; Notation> ; & ; ) ; / / Поиск в массиве комбинаций "ход конём".

Std : : vector< ; Notation> ; SearchMoves(const std : : vector< ; Notation> ; & ; ) ; / / Поиск возможных комбинаций для хода.

Std : : vector< ; Notation> ; SearchMoves(const Notation& ; ) ; / / Проверка выхода за границу.

Bool CheckMov(const Notation& ; , int, int) ; / / Выводит массив в поток.

Std : : ostream& ; PrintGround(const std : : vector< ; Notation> ; & ; , std : : ostream& ; = std : : cout) ;

int main()

{ std : : vector< ; Notation> ; field(100) ; / / Заполняем поле.

FillField(field) ; / / Выводим исходный массив.

PrintGround(field, std : : cout) < ; < ; std : : endl ; / / Поиск комбинаций "ход конём".

Std : : vector< ; Notation> ; fieldMovs = SearchMoves(field) ; / / Выводим полученный массив.

PrintGround(fieldMovs, std : : cout) < ; < ; std : : endl ; / / Отсортируем оба массива в порядке возрастания.

Std : : sort(field.

Begin(), field.

End()) ; std : : sort(fieldMovs.

Begin(), fieldMovs.

End()) ; / / Выводим полученные массивы.

PrintGround(field, std : : cout) < ; < ; std : : endl ; PrintGround(fieldMovs, std : : cout) < ; < ; std : : endl ; return 0 ;

} / / Описывает шахматную нотацию.

Struct Notation{ unsigned char H ; unsigned int V ; bool operator = = (const Notation& ; rhs) const{ return ((rhs.

H = = H) & ; & ; (rhs.

V = = V)) ; } bool operator< ; (const Notation& ; rhs) const{ return ((rhs.

H < ; H) || ((rhs.

H = = H) & ; & ; (rhs.

V < ; V))) ; }

} ; / / Заполняет массив случайными шахматными ходами.

Void FillField(std : : vector< ; Notation> ; & ; field){ std : : default_random_engine generator ; std : : uniform_int_distribution< ; int> ; distribution(1, 8) ; for (auto& ; i : field){ i.

H = 'a' + distribution(generator) - 1 ; i.

V = distribution(generator) ; }

} / / Поиск возможных комбинаций для хода.

Std : : vector< ; Notation> ; SearchMoves(const Notation& ; stroke){ std : : vector< ; Notation> ; temp ; int x, y ; for (int i = 0 ; i < ; 8 ; + + i){ switch (i){ case 0 : / / Вверх влево.

Y = + 3 ; x = - 1 ; break ; case 1 : / / Вверх вправо.

Y = + 3 ; x = + 1 ; break ; case 2 : / / Вправо вверх.

Y = + 1 ; x = + 3 ; break ; case 3 : / / Вправо вниз.

Y = - 1 ; x = + 3 ; break ; case 4 : / / Вниз вправо.

Y = - 3 ; x = + 1 ; break ; case 5 : / / Вниз влево.

Y = - 3 ; x = - 1 ; break ; case 6 : / / Влево вниз.

Y = - 1 ; x = - 3 ; break ; case 7 : / / Влево вверх.

Y = + 1 ; x = - 3 ; break ; } / / Если ход возможен, добавим его в массив.

If (CheckMov(stroke, x, y)) temp.

Push_back(Notation{ stroke.

H + x, stroke.

V + y }) ; } return std : : vector< ; Notation> ; (temp) ;

} / / Проверка выхода за границу.

Bool CheckMov(const Notation& ; stroke, int x, int y){ bool isLTBorder = (stroke.

H + x > ; = 'a') & ; & ; (stroke.

V + y > ; = 1) ; bool isRBBorder = (stroke.

H + x < ; = 'h') & ; & ; (stroke.

V + y < ; = 8) ; return (isLTBorder & ; & ; isRBBorder) ;

} / / Поиск в массиве комбинаций "ход конём".

Std : : vector< ; Notation> ; SearchMoves(const std : : vector< ; Notation> ; & ; field){ std : : vector< ; Notation> ; possible ; / / Все возможные ходы одного элемента.

Std : : vector< ; Notation> ; temp = SearchMoves( * field.

Begin()) ; for (auto i = field.

Begin() + 1 ; i < ; field.

End() ; + + i){ for (auto u : temp){ / / Ход в массиве - есть ход конём.

If (u = = * i) { possible.

Push_back(u) ; break ; } } temp = SearchMoves( * i) ; } return std : : vector< ; Notation> ; (possible) ;

} / / Выводит массив в поток.

Std : : ostream& ; PrintGround(const std : : vector< ; Notation> ; & ; field, std : : ostream& ; out){ for (auto i : field) out < ; < ; i.

H < ; < ; i.

V < ; < ; " - " ; return out ;

}.

Wwwgalaevasas 18 апр. 2020 г., 15:35:18 | 10 - 11 классы

ПАСКАЛЬ, помогите пожалуйста отсортировать по возрастанию отрицательные элементы массива?

ПАСКАЛЬ, помогите пожалуйста отсортировать по возрастанию отрицательные элементы массива.

Вывести исходный массив и измененный массив.

Можно использовать любой метод сортировки.

Массив заполнить случайными положительными и отрицательными числами.

Alfiya001 24 сент. 2020 г., 07:03:19 | 10 - 11 классы

Как преобразовать символ char в переменную int на языке с (не с + + )?

Как преобразовать символ char в переменную int на языке с (не с + + )?

Например char c ; int x ; чтобы 'c' = x ; Спасибо заранее.

Manaevayuliya 6 февр. 2020 г., 15:28:30 | 10 - 11 классы

Заполнить массив случайными числами и выполнить сдвиг элементов массива в право на 1 злемент?

Заполнить массив случайными числами и выполнить сдвиг элементов массива в право на 1 злемент.

Lyuba1606 30 апр. 2020 г., 15:12:53 | 10 - 11 классы

Дан двумерный массив размерности 10х10?

Дан двумерный массив размерности 10х10.

Заполнить его случайными числами на отрезке [ - 25, 25].

В каждой строке массива найти количество элементов, больших заданного числа H.

Результат получить в виде одномерного массива.

Вывести исходный массив и полученный результат на печать.

Шмекер 31 окт. 2020 г., 19:39:12 | 10 - 11 классы

Вопрос по С + + Надо было составить программу чтобы считывала текст из файла и выводила количество маленьких (4 - 8 символов) слов во всех строках текста То что придумал #include "stdafx?

Вопрос по С + + Надо было составить программу чтобы считывала текст из файла и выводила количество маленьких (4 - 8 символов) слов во всех строках текста То что придумал #include "stdafx.

H" #include #include #include #include using namespace std ; int main(int argc, _TCHAR * argv[]) { FILE * text ; char * filename = "C : \ \ Myfile.

Txt" ; char buf[101] = "" ; char commentStr[101] = "" ; if (!

(fopen_s(& ; text, filename, "r"))) { while (fgets(buf, 100 , text)) printf_s("%s", buf) ; char * pmin = NULL ; size_t pminlen = 0 ; char * head ; char * tail ; while ( * tail) { for (head = tail ; * head & ; & ; !

Isalnum( * head) ; + + head) { ; } for (tail = head ; * tail & ; & ; isalnum( * tail) ; + + tail) { ; } if (head < ; tail) { if ((pmin = = NULL) || (pminlen > ; tail - head)) ; { pmin = head ; pminlen = tail - head ; } } } if (pmin) { printf(" \ n") ; printf("min = %.

* s \ n", pminlen, pmin) ; } system("pause") ; return 0 ; } ничего не выдает в чем ошибка ( как мне кажется их тут дофига).

Kiamovalina 21 окт. 2020 г., 18:41:46 | 10 - 11 классы

#include using namespace std ; int main() { const int size = 100 ; int array_n[size] ; int array_m[size] ; int n, m ; cin > ; > ; n ; for (int i = 0 ; i < ; n ; i + + ) cin > ; > ; array_n[i?

#include using namespace std ; int main() { const int size = 100 ; int array_n[size] ; int array_m[size] ; int n, m ; cin > ; > ; n ; for (int i = 0 ; i < ; n ; i + + ) cin > ; > ; array_n[i] ; cin > ; > ; m ; for (int i = 0 ; i < ; m ; i + + ) cin > ; > ; array_m[i] ; for (int i = 0 ; i < ; n ; i + + ) { int check = 1 ; for (int j = 0 ; j < ; m ; j + + ) if (array_n[i] = = array_m[j]) check = 0 ; if(check = = 1) cout < ; < ; array_n[i] < ; < ; " " ; } } сделать так чтобы числа которые будет выводить эта программа были отсортированы от большего к меньшему (С + + ).

2526006 25 авг. 2020 г., 17:41:07 | 5 - 9 классы

Заполнить массив случайными числами и выполнить циклический сдвиг элементов массива вправо на 1 элемент ?

Заполнить массив случайными числами и выполнить циклический сдвиг элементов массива вправо на 1 элемент .

Пример.

Массив : 123456 результат : 612345.

89132730587 18 нояб. 2020 г., 03:41:12 | 10 - 11 классы

Что не так в программе?

Что не так в программе?

Нужно вывести минимальный элемент, который есть в массиве.

С + +

#include

#include

#include

#include

#include

int main()

{

int a[5], i, min ;

srand (time(0)) ;

printf("a : \ n") ;

for (i = 0 ; i.

Anastasizi 24 сент. 2020 г., 17:33:03 | 10 - 11 классы

C + + Нужно создать одномерный массив A[5] где числа будут введены случайным образом от 0 до 1?

C + + Нужно создать одномерный массив A[5] где числа будут введены случайным образом от 0 до 1.

Я делал вот что у меня получается : #include #include #include using namespace std ; int main () { float A[5] = {} ; srand(time(NULL)) ; for (char i = 0 ; i< ; 5 ; i + + ) { A[i] = (char)rand()%1 ; cout< ; } return 0 ; } Проблема в том, что выводит только нули Помогите пожалуйста.

Yulduzikcom 12 дек. 2020 г., 04:28:21 | 10 - 11 классы

Задача по теме рандомиз и сранд :Составьте программу на языке С + + для решения одного из вариантов заданий?

Задача по теме рандомиз и сранд :

Составьте программу на языке С + + для решения одного из вариантов заданий.

Программа должна иметь пользовательское меню, которое позволяет : заполнить массив и при этом вывести его на экран, выполнить операции над массивом и просмотреть результаты, закрыть программу.

Вариант 6 : Одномерный массив из 16 элементов случайным образом заполняется целыми числами из диапазона [ - 240.

180].

Найти сумму четных отрицательных и сумму нечетных положительных элементов массива.

Начал писать :

#include

#include

#include

#include

#include

#include

int main (void)

{ int x[16] ; int t ; randomize() ; x = random(180) - 240 ; / / for (t = 0 ; t < 16 ; + + t) scanf("%d ", x[t]) ; for (t = 0 ; t < 16 ; + + t) printf("%d ", x[t]) ; return 0 ;

}

Пишет ошибку :

12 14 E : \ 1 Ó×ÅÁÀ \ 5ñåìåñòð \ ïðîãðàììû \ ïð4.

1. cpp [Error] 'randomize' was not declared in this scope

13 13 E : \ 1 Ó×ÅÁÀ \ 5ñåìåñòð \ ïðîãðàììû \ ïð4.

1. cpp [Error] 'random' was not declared in this scope

Не могу дальше этого места пройти.

Можно при помощи srand, если вам будет проще.

На этой странице вы найдете ответ на вопрос Напишите пожалуйста комментарии к программе на С + + , что к чему скажем так?. Вопрос соответствует категории Информатика и уровню подготовки учащихся 10 - 11 классов классов. Если ответ полностью не удовлетворяет критериям поиска, ниже можно ознакомиться с вариантами ответов других посетителей страницы или обсудить с ними интересующую тему. Здесь также можно воспользоваться «умным поиском», который покажет аналогичные вопросы в этой категории. Если ни один из предложенных ответов не подходит, попробуйте самостоятельно сформулировать вопрос иначе, нажав кнопку вверху страницы.