• ❓Решение отправлено
    • 12589 id
    • 1500.0 ₽
    • 20.0%
Александр Сундуков
  • S:13:22:59 06.12
  • R:13:23:01 06.12
По заказу 12589 Предложение от исполнителя №53 ❗Работает недавно❗ 📚 Информатика 💰 50 ₽ 💬 : Цена после того, как увижу задания лаб
SYSTEM
  • S:13:24:03 06.12
  • R:13:24:05 06.12
  • Александр Якушев начал диалог с Александр Сундуков
    Александр Сундуков
    • S:13:24:18 06.12
    • R:13:24:19 06.12
    🤖:Все подключились. Не забудь поздороваться)
    Александр Сундуков
    • S:13:24:24 06.12
    • R:13:24:25 06.12
    Здравствуйте
    Александр Сундуков
    • S:13:24:36 06.12
    • R:13:24:38 06.12
    Можно задания лабораторных работ и срок выполнения?
    Александр Якушев
  • S:13:24:41 06.12
  • R:13:24:41 06.12
  • Здравствуйте
    Александр Якушев
  • S:13:25:58 06.12
  • R:13:25:58 06.12
  • Первая лаба нам дали задание сделать матрицу, размер и числа которой заполняет пользователь. И в добавок у тебя должны меняться местами основная и побочная диагональ матрицы. Вторая лаба заключалась в том, что пользователь вводит n-ное кол-во элементов и программа сортирует их на положительные и отрицательные. Затем он сортирует отдедьно положительные, отдельно отрицательные в порядке возрастания (нули в счет не идут)
    Александр Якушев
  • S:13:28:15 06.12
  • R:13:28:16 06.12
  • Третья Пользователь вводит ФИО (отдельно в каждой строке) 1) убрать повторяющиеся пробелы 2) обрезать (убрать) пробелы в начале и конце строки 3) заменить в первом слове окончание ов на идзе
    Александр Якушев
  • S:13:31:01 06.12
  • R:13:31:01 06.12
  • Решение должно быть с выделенными функциями
    Александр Сундуков
    • S:13:38:22 06.12
    • R:13:38:24 06.12
    Можно ли использовать регулярные выражения?
    Александр Сундуков
    • S:13:40:27 06.12
    • R:13:40:29 06.12
    Или в третьей лабе через char надо?
    Александр Якушев
  • S:13:46:28 06.12
  • R:13:46:28 06.12
  • Хз что такое регулярные выражения
    Александр Якушев
  • S:13:46:38 06.12
  • R:13:46:39 06.12
  • Так что врядли
    Александр Якушев
  • S:13:46:38 06.12
  • R:13:46:40 06.12
  • А char можно
    Александр Якушев
  • S:13:46:55 06.12
  • R:13:46:55 06.12
  • Главное чтобы не было string.h
    Александр Сундуков
    • S:13:53:53 06.12
    • R:13:53:54 06.12
    За 2000 могу сделать за сегодня, согласны?
    Александр Якушев
  • S:13:58:51 06.12
  • R:13:58:52 06.12
  • Цена от срока сдачи зависит?
    Александр Сундуков
    • S:13:59:52 06.12
    • R:13:59:53 06.12
    Через char гораздо сложнее делать, чем через регулярные выражения
    Александр Сундуков
    • S:14:26:06 06.12
    • R:14:26:07 06.12
    За сколько вы согласны?
    Александр Якушев
  • S:16:25:42 06.12
  • R:16:25:43 06.12
  • 1500?
    Александр Сундуков
    • S:16:28:46 06.12
    • R:16:28:47 06.12
    Согласен, выбирайте исполнителем
    SYSTEM
  • S:16:33:50 06.12
  • R:16:33:51 06.12
  • Александр Якушев выбрал исполнителем Александр Сундуков
    Александр Якушев
  • S:16:33:51 06.12
  • R:16:33:52 06.12
  • Заказчик выбрал другого исполнителя. Чат неактивен
    Александр Сундуков
    • S:16:34:36 06.12
    • R:16:34:37 06.12
    2202 2032 6181 1881 Сбер Михаил Андреевич Л. По оплате пришлите чек, пожалуйста 50руб
    Александр Сундуков
    • S:16:34:43 06.12
    • R:16:34:44 06.12
    Жду предоплату
    Александр Якушев
  • S:16:36:14 06.12
  • R:16:36:15 06.12
  • А цену за заказ поменять не надо?
    Александр Сундуков
    • S:16:45:07 06.12
    • R:16:45:09 06.12
    Исполнитель изменил стоимость. Новое значение: 1500 ₽
    Александр Сундуков
    • S:16:45:16 06.12
    • R:16:45:18 06.12
    Поменял
    Александр Якушев
  • S:16:46:07 06.12
  • R:16:46:09 06.12
  • Отправил 1 вложений
    Александр Сундуков
    • S:16:47:21 06.12
    • R:16:47:23 06.12
    Хорошо
    Александр Сундуков
    • S:22:26:43 06.12
    • R:22:26:45 06.12
    1 лаба #include <stdio.h> #include <stdlib.h> #include <locale.h> // Функция для создания матрицы указанного размера int** createMatrix(int size) { // Проверка на неотрицательный размер if (size < 0) { wprintf(L*Недопустимый размер матрицы. Пожалуйста, введите неотрицательное значение.\n*); exit(EXIT_FAILURE); } // Выделение памяти под указатели на строки int** matrix = (int**)malloc(size * sizeof(int*)); // Выделение памяти для каждой строки for (int i = 0; i < size; i++) { matrix[i] = (int*)malloc(size * sizeof(int)); } return matrix; } // Функция для освобождения памяти, выделенной для матрицы void freeMatrix(int** matrix, int size) { // Освобождение памяти для каждой строки for (int i = 0; i < size; i++) { free(matrix[i]); } // Освобождение памяти для указателей на строки free(matrix); } // Функция для обмена местами основной и побочной диагонали матрицы void swapDiagonals(int** matrix, int size) { for (int i = 0; i < size; i++) { int temp = matrix[i][i]; matrix[i][i] = matrix[i][size - 1 - i]; matrix[i][size - 1 - i] = temp; } } // Функция для вывода матрицы void printMatrix(int** matrix, int size) { for (int i = 0; i < size; i++) { for (int j = 0; j < size; j++) { wprintf(L*%d\t*, matrix[i][j]); } wprintf(L*\n*); } } int main() { int size; // Устанавливаем локаль для ввода/вывода на русском языке setlocale(LC_ALL, *.866*); // Запрашиваем размер матрицы wprintf(L*Введите размер матрицы: *); scanf_s(*%d*, &size); // Создаем матрицу int** matrix = createMatrix(size); // Заполняем матрицу пользовательским вводом wprintf(L*Введите элементы матрицы:\n*); for (int i = 0; i < size; i++) { for (int j = 0; j < size; j++) { wprintf(L*Элемент [%d][%d]: *, i, j); scanf_s(*%d*, &matrix[i][j]); } } // Выводим исходную матрицу wprintf(L*\nИсходная матрица:\n*); printMatrix(matrix, size); // Обмениваем местами основную и побочную диагонали swapDiagonals(matrix, size); // Выводим результат wprintf(L*\nМатрица после обмена диагоналей:\n*); printMatrix(matrix, size); // Освобождаем память freeMatrix(matrix, size); return 0; }
    Александр Сундуков
    • S:22:27:44 06.12
    • R:22:27:46 06.12
    2 лаба #include <stdio.h> #include <stdlib.h> #include <wchar.h> #include <locale.h> // Функция для сортировки массива чисел в порядке возрастания void bubbleSort(int arr[], int n) { for (int i = 0; i < n - 1; i++) { for (int j = 0; j < n - i - 1; j++) { if (arr[j] > arr[j + 1]) { // Обмен элементов int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } } // Функция для разделения чисел на положительные и отрицательные void separateNumbers(int arr[], int n, int** positive, int* positiveCount, int** negative, int* negativeCount) { // Определяем количество положительных и отрицательных чисел for (int i = 0; i < n; i++) { if (arr[i] > 0) { (*positiveCount)++; } else if (arr[i] < 0) { (*negativeCount)++; } } // Выделяем память под массивы положительных и отрицательных чисел *positive = (int*)malloc(*positiveCount * sizeof(int)); [id23816|*negative] = (int*)malloc(*negativeCount * sizeof(int)); // Заполняем массивы положительных и отрицательных чисел int posIndex = 0; int negIndex = 0; for (int i = 0; i < n; i++) { if (arr[i] > 0) { (*positive)[posIndex++] = arr[i]; } else if (arr[i] < 0) { ([id23816|*negative])[negIndex++] = arr[i]; } } } int main() { setlocale(LC_ALL, *.866*); int n; // Запрашиваем у пользователя количество элементов wprintf(L*Введите количество элементов: *); scanf_s(*%d*, &n); // Создаем массив для хранения элементов int* arr = (int*)malloc(n * sizeof(int)); // Заполняем массив элементами wprintf(L*Введите элементы массива:\n*); for (int i = 0; i < n; i++) { wprintf(L*Элемент %d: *, i + 1); scanf_s(*%d*, &arr[i]); } // Определяем количество положительных и отрицательных чисел int positiveCount = 0; int negativeCount = 0; int* positiveNumbers; int* negativeNumbers; separateNumbers(arr, n, &positiveNumbers, &positiveCount, &negativeNumbers, &negativeCount); // Сортируем положительные числа bubbleSort(positiveNumbers, positiveCount); // Сортируем отрицательные числа bubbleSort(negativeNumbers, negativeCount); // Выводим результат wprintf(L*\nПоложительные числа (в порядке возрастания):\n*); for (int i = 0; i < positiveCount; i++) { wprintf(L*%d *, positiveNumbers[i]); } wprintf(L*\nОтрицательные числа (в порядке возрастания):\n*); for (int i = 0; i < negativeCount; i++) { wprintf(L*%d *, negativeNumbers[i]); } // Освобождаем память free(arr); free(positiveNumbers); free(negativeNumbers); return 0; }
    Александр Сундуков
    • S:22:28:51 06.12
    • R:22:28:52 06.12
    3 лаба #include <stdio.h> #include <wchar.h> #include <locale.h> // Функция для удаления повторяющихся пробелов и пробелов в начале и конце строки wchar_t* removeSpaces(wchar_t* str, wchar_t* result) { int length = wcslen(str); // Удаляем пробелы в начале строки int startIndex = 0; while (iswspace(str[startIndex])) { startIndex++; } // Удаляем пробелы в конце строки int endIndex = length - 1; while (endIndex >= 0 && iswspace(str[endIndex])) { endIndex--; } // Копируем корректную часть строки обратно в начало int i, j; for (i = startIndex, j = 0; i <= endIndex; i++) { if (!(iswspace(str[i]) && (i == 0 || iswspace(str[i - 1])))) { // Если текущий символ не пробел или не повторяющийся пробел, добавляем его result[j++] = str[i]; } } // Добавляем завершающий нуль для корректного окончания строки result[j] = L*\0*; return result; } // Функция для получения первого слова из строки wchar_t* getFirstWord(const wchar_t* str, wchar_t* result) { // Копируем символы первого слова в новую строку int i = 0; int j = 0; while (str[i] != L*\0* && !iswspace(str[i])) { result[j++] = str[i++]; } // Добавляем завершающий нуль для корректного окончания строки result[j] = L*\0*; return result; } // Функция для замены окончания *ов* на *идзе* wchar_t* replaceEnd(wchar_t* word, wchar_t* result) { // Ищем подстроку *ов* в слове wchar_t* ovPosition = wcsstr(word, L*ов*); // Если нашли *ов*, заменяем на *идзе* if (ovPosition != NULL) { wcscpy_s(ovPosition, wcslen(L*идзе*) + 1, L*идзе*); } result = word; return result; } int main() { setlocale(LC_ALL, *.866*); // Определяем массивы для Фамилии и полного имени wchar_t Surname[50]; wchar_t FullName[150]; // Вводим ФИО с клавиатуры с использованием wscanf_s wprintf(L*Введите ФИО: *); wscanf_s(L*%l[^\n]*, FullName, sizeof(FullName) / sizeof(wchar_t)); wchar_t FullNameCopy[150]; // Создаем отдельный массив для фамилии removeSpaces(FullName, FullNameCopy); // Получаем первое слово getFirstWord(FullNameCopy, Surname); int surlen = wcslen(Surname); // Заменяем окончание replaceEnd(Surname, Surname); // Выводим результаты без фамилии wprintf(L*ФИО: %s %s*, Surname, FullNameCopy + surlen + 1); return 0; }
    SYSTEM
  • S:22:28:56 06.12
  • R:22:28:58 06.12
  • Александр Сундуков отправил решение Александр Якушев
    Александр Якушев
  • S:10:50:28 07.12
  • R:10:50:29 07.12
  • Отправил 1 вложений
    Александр Якушев
  • S:10:50:34 07.12
  • R:10:50:35 07.12
  • Это первая лаба
    Александр Якушев
  • S:10:53:33 07.12
  • R:10:53:35 07.12
  • Отправил 1 вложений
    Александр Якушев
  • S:10:53:35 07.12
  • R:10:53:36 07.12
  • Вторая лаба
    Александр Сундуков
    • S:10:56:52 07.12
    • R:10:56:53 07.12
    Буду думать и исправлю, почему возникли ошибки с char
    Александр Якушев
  • S:10:57:49 07.12
  • R:10:57:50 07.12
  • А вы не проверяли как работает когда отправляли?
    Александр Сундуков
    • S:10:58:15 07.12
    • R:10:58:17 07.12
    Проверял, у меня работало
    Александр Якушев
  • S:10:59:20 07.12
  • R:10:59:21 07.12
  • Ну я в онлайн компилятор это вбил
    Александр Якушев
  • S:10:59:21 07.12
  • R:10:59:22 07.12
  • И вот
    Александр Якушев
  • S:10:59:39 07.12
  • R:10:59:41 07.12
  • А лабу буду переписывать в qt creator
    Александр Якушев
  • S:11:02:50 07.12
  • R:11:02:50 07.12
  • Вот третья
    Александр Сундуков
    • S:11:03:32 07.12
    • R:11:03:34 07.12
    Исправлю
    Александр Сундуков
    • S:14:21:45 07.12
    • R:14:21:46 07.12
    Третья #include <stdio.h> // Функция для удаления повторяющихся пробелов и пробелов в начале и конце строки char* removeSpaces(char* str, char* result) { int i = 0, j = 0; while (str[i] != *\0*) { if (!((str[i] == * * || str[i] == *\t*) && (i == 0 || str[i - 1] == * * || str[i - 1] == *\t*))) { // Если текущий символ не пробел или не повторяющийся пробел, добавляем его result[j++] = str[i]; } i++; } // Убираем пробелы в конце строки while (j > 0 && (result[j - 1] == * * || result[j - 1] == *\t*)) { j--; } // Добавляем завершающий нуль для корректного окончания строки result[j] = *\0*; return result; } // Функция для получения первого слова из строки char* getFirstWord(const char* str, char* result) { int i = 0, j = 0; while (str[i] != *\0* && str[i] != * * && str[i] != *\t*) { result[j++] = str[i++]; } // Добавляем завершающий нуль для корректного окончания строки result[j] = *\0*; return result; } // Функция для замены окончания *ов* на *идзе* char* replaceEnd(char* word, char* result, int surlen) { int i = 0, j = 0; for (int i = 0; i < surlen;) { if (word[i] == *о* && word[i + 1] == *в* && (word[i + 2] == * * || word[i + 2] == *\0*)) { result[j++] = *и*; result[j++] = *д*; result[j++] = *з*; result[j++] = *е*; i += 2; // Пропускаем *ов* } else { result[j++] = word[i++]; } } // Добавляем завершающий нуль для корректного окончания строки result[j] = *\0*; return result; } int main() { // Определяем массивы для Фамилии и полного имени char Surname[50]; char FullName[150]; // Вводим ФИО с клавиатуры printf(*Введите ФИО: *); scanf_s(*%[^\n]*, FullName, sizeof(FullName)); char FullNameCopy[150]; removeSpaces(FullName, FullNameCopy); // Получаем первое слово getFirstWord(FullNameCopy, Surname); int surlen = 0; while (Surname[surlen] != *\0*) { surlen++; } // Заменяем окончание char SurnameResult[50]; replaceEnd(Surname, SurnameResult, surlen); // Выводим результаты без фамилии printf(*ФИО: %s %s\n*, SurnameResult, FullNameCopy + surlen + 1); return 0; }
    Александр Сундуков
    • S:14:22:07 07.12
    • R:14:22:09 07.12
    #include <stdio.h> #include <stdlib.h> #include <locale.h> // Функция для создания матрицы указанного размера int** createMatrix(int size) { // Проверка на неотрицательный размер if (size < 0) { printf(*Недопустимый размер матрицы. Пожалуйста, введите неотрицательное значение.\n*); exit(EXIT_FAILURE); } // Выделение памяти под указатели на строки int** matrix = (int**)malloc(size * sizeof(int*)); // Выделение памяти для каждой строки for (int i = 0; i < size; i++) { matrix[i] = (int*)malloc(size * sizeof(int)); } return matrix; } // Функция для освобождения памяти, выделенной для матрицы void freeMatrix(int** matrix, int size) { // Освобождение памяти для каждой строки for (int i = 0; i < size; i++) { free(matrix[i]); } // Освобождение памяти для указателей на строки free(matrix); } // Функция для обмена местами основной и побочной диагонали матрицы void swapDiagonals(int** matrix, int size) { for (int i = 0; i < size; i++) { int temp = matrix[i][i]; matrix[i][i] = matrix[i][size - 1 - i]; matrix[i][size - 1 - i] = temp; } } // Функция для вывода матрицы void printMatrix(int** matrix, int size) { for (int i = 0; i < size; i++) { for (int j = 0; j < size; j++) { printf(*%d\t*, matrix[i][j]); } printf(*\n*); } } int main() { int size; // Устанавливаем локаль для ввода/вывода на русском языке setlocale(LC_ALL, *.1251*); // Запрашиваем размер матрицы printf(*Введите размер матрицы: *); scanf_s(*%d*, &size); // Создаем матрицу int** matrix = createMatrix(size); // Заполняем матрицу пользовательским вводом printf(*Введите элементы матрицы:\n*); for (int i = 0; i < size; i++) { for (int j = 0; j < size; j++) { printf(*Элемент [%d][%d]: *, i, j); scanf_s(*%d*, &matrix[i][j]); } } // Выводим исходную матрицу printf(*\nИсходная матрица:\n*); printMatrix(matrix, size); // Обмениваем местами основную и побочную диагонали swapDiagonals(matrix, size); // Выводим результат printf(*\nМатрица после обмена диагоналей:\n*); printMatrix(matrix, size); // Освобождаем память freeMatrix(matrix, size); return 0; }
    Александр Сундуков
    • S:14:22:31 07.12
    • R:14:22:33 07.12
    #include <stdio.h> #include <stdlib.h> // Функция для сортировки массива чисел в порядке возрастания void bubbleSort(int arr[], int n) { for (int i = 0; i < n - 1; i++) { for (int j = 0; j < n - i - 1; j++) { if (arr[j] > arr[j + 1]) { // Обмен элементов int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } } // Функция для разделения чисел на положительные и отрицательные void separateNumbers(int arr[], int n, int** positive, int* positiveCount, int** negative, int* negativeCount) { // Определяем количество положительных и отрицательных чисел for (int i = 0; i < n; i++) { if (arr[i] > 0) { (*positiveCount)++; } else if (arr[i] < 0) { (*negativeCount)++; } } // Выделяем память под массивы положительных и отрицательных чисел *positive = (int*)malloc(*positiveCount * sizeof(int)); [id23816|*negative] = (int*)malloc(*negativeCount * sizeof(int)); // Заполняем массивы положительных и отрицательных чисел int posIndex = 0; int negIndex = 0; for (int i = 0; i < n; i++) { if (arr[i] > 0) { (*positive)[posIndex++] = arr[i]; } else if (arr[i] < 0) { ([id23816|*negative])[negIndex++] = arr[i]; } } } int main() { // Запрашиваем у пользователя количество элементов printf(*Введите количество элементов: *); int n; scanf_s(*%d*, &n); // Создаем массив для хранения элементов int* arr = (int*)malloc(n * sizeof(int)); // Заполняем массив элементами printf(*Введите элементы массива:\n*); for (int i = 0; i < n; i++) { printf(*Элемент %d: *, i + 1); scanf_s(*%d*, &arr[i]); } // Определяем количество положительных и отрицательных чисел int positiveCount = 0; int negativeCount = 0; int* positiveNumbers; int* negativeNumbers; separateNumbers(arr, n, &positiveNumbers, &positiveCount, &negativeNumbers, &negativeCount); // Сортируем положительные числа bubbleSort(positiveNumbers, positiveCount); // Сортируем отрицательные числа bubbleSort(negativeNumbers, negativeCount); // Выводим результат printf(*\nПоложительные числа (в порядке возрастания):\n*); for (int i = 0; i < positiveCount; i++) { printf(*%d *, positiveNumbers[i]); } printf(*\nОтрицательные числа (в порядке возрастания):\n*); for (int i = 0; i < negativeCount; i++) { printf(*%d *, negativeNumbers[i]); } // Освобождаем память free(arr); free(positiveNumbers); free(negativeNumbers); return 0; } Вторая
    Александр Сундуков
    • S:14:43:09 07.12
    • R:14:43:11 07.12
    И если использовать ваш компилятор на сайте, то нужно все scanf_s заменить на scanf
    Александр Якушев
  • S:14:31:55 11.12
  • R:14:31:58 11.12
  • Добрый день
    Александр Якушев
  • S:14:32:01 11.12
  • R:14:32:02 11.12
  • Отправил 1 вложений
    Александр Якушев
  • S:14:32:08 11.12
  • R:14:32:10 11.12
  • Все равно выскакивает ошибка
    Александр Сундуков
    • S:14:46:29 11.12
    • R:14:46:33 11.12
    Замените в этих строчках * на *
    Александр Сундуков
    • S:14:46:41 11.12
    • R:14:46:43 11.12
    У меня все работает
    Александр Якушев
  • S:14:47:00 11.12
  • R:14:47:02 11.12
  • На *?
    Александр Сундуков
    • S:14:52:00 11.12
    • R:14:52:02 11.12
    Вместо них *
    Александр Якушев
  • S:14:53:32 11.12
  • R:14:53:34 11.12
  • так в коде наоборот везде *
    Александр Сундуков
    • S:14:55:05 11.12
    • R:14:55:08 11.12
    Ну так * заменить на *
    Александр Якушев
  • S:14:55:48 11.12
  • R:14:55:49 11.12
  • Отправил 1 вложений
    Александр Якушев
  • S:14:55:59 11.12
  • R:14:56:00 11.12
  • Звездочку на звездочку?
    Александр Сундуков
    • S:14:58:09 11.12
    • R:14:58:11 11.12
    Отправил 1 вложений
      • USER
      • 1500.0

        /

        1500.0

      • EXEC
      • 1200.0

        /

        1200.0

        

    Сбер

       

    Тинькофф