DeD_Modder
|
|
1 | |
Подсчитать, сколько раз за нулем следует положительное число, если обходить таблицу по спирали против часовой стрелки, начиная с нижнего правого угла.29.10.2008, 07:11. Показов 1931. Ответов 5
Метки нет (Все метки)
Пожалуйста помогите!
Задача: Подсчитать, сколько раз за нулем следует положительное число, если обходить таблицу по спирали против часовой стрелки, начиная с нижнего правого угла. Требования к задаче: 1. В задании требуется написать подпрограмму обработки прямоугольной таблицы вещественных чисел. Подпрограмма должна реализовывать вычислительный алгоритм, который получает саму таблицу и ее размеры (т.е. количество строк и столбцов) в качестве входных параметров, а в качестве выходного параметра – результат вычислений. Кроме того, должна быть написана программа, которая позволяет создать таблицу заказанных пользователем размеров, вызвать подпрограмму обработки и вывести на экран результат вычислений. Эта программа называется тестирующей, т.к. позволяет протестировать основную подпрограмму на разных входных данных. 2. Таблица хранится в виде двумерного статического массива достаточно больших размеров. Определен тип «таблица» (это нужно для того, чтобы передать таблицу в подпрограмму). Максимальные индексы массива, используемые при описании типа, хранятся в виде констант. 3. Основная подпрограмма не содержит операций ввода-вывода. Параметры подпрограммы: таблица (по ссылке), фактические размеры таблицы (по значению), основной результат – по ссылке. Подпрограмма содержит описание спецификации (в виде комментария под заголовком). 4. Работа тестирующей программы организована в виде простейшего меню, позволяющего создавать таблицу, выполнять ее обработку, показывать результат и заканчивать работу. 5. Фактические размеры таблицы указываются пользователем. Заполнение таблицы осуществляется двумя способами (по выбору пользователя) с клавиатуры (простейший последовательный ввод элементов) и случайным образом. 6. Алгоритм реализован без создания вспомогательной таблицы (при необходимости можно пользоваться вспомогательным одномерным массивом Заранее спасибо! |
29.10.2008, 07:11 | |
Ответы с готовыми решениями:
5
Заполнить массив против часовой стрелки начиная с нижнего правого угла Массив A[2*n+1][2*n+1] заполнить по спирали против часовой стрелки, начиная из центра Осуществить заполнения экрана квадратными окнами цветами чередующихся по спирали, начиная с нижнего правого угла экрана (Текстовый режим) Заполнение матрицы по спирали, начиная с центральной клетки, против часовой стрелки |
(Yellow_Duck)
1261 / 130 / 15
Регистрация: 16.10.2008
Сообщений: 733
|
|
29.10.2008, 16:25 | 2 |
Это где тебе такое задали?
Во навернули то с условием. язык заплетается) Но думаю попробовать можно
1
|
DeD_Modder
|
|
29.10.2008, 16:44 | 3 |
Сам офигел от задания! А задали это в универе. Спасибо что откликнулись!
|
Zoombobob
|
|
01.11.2013, 07:41 | 4 |
У меня это же задание, с нетерпением жду ответа. Сам вроде составил алгоритм, который, по идее, должен считать, но не считает.
|
0 / 0 / 0
Регистрация: 04.02.2021
Сообщений: 1
|
|
04.02.2021, 09:44 | 5 |
#include <iostream>
#include <math.h> #include <iostream> #include <cmath> #include <conio.h> #include <string> #include <windows.h> #include <iomanip> #include <stdlib.h> using namespace std; const int sto = 100, str = 100; int menu() { cout << "Меню" << endl; cout << "1), чтобы задать размеры таблицы" << endl; cout << "2), чтобы заполнить массив ручками" << endl; cout << "3), чтобы заполнить массив роботом" << endl; cout << "4), чтобы показать таблицу" << endl; cout << "5), чтобы выполнить алгоритм задания" << endl; cout << "6), для завершения работы программы" << endl; return 0; } int vvod(int& colstr, int& colsto) { cout << "Введите число строк и столбцов таблицы (N и M)\n"; cin >> colstr; cin >> colsto; if ((colstr <= 0 || colsto <= 0) || (colstr > str || colsto > sto)) cout << "Параметры введены плохо, переделывай!"; _getch(); return 0; } int array1(int& colstr, int& colsto, double arr[str][sto]) { if ((colstr > 0 && colstr <= str) && (colsto > 0 && colsto <= sto)) { int i, j; for (i = 0; i < colstr; i++) for (j = 0; j < colsto; j++) { cin >> arr[i][j]; } } else cout << "У вас размер неправильный, переделывай!"; _getch(); return 0; } int array_r(int& colstr, int& colsto, double arr[str][sto]) { if ((colstr > 0 && colstr <= str) && (colsto > 0 && colsto <= sto)) { int i, j; for (i = 0; i < colstr; i++) for (j = 0; j < colsto; j++) { arr[i][j] = rand() % 5 - 2; } } else cout << "Я сказал ПЕРЕДЕЛЫВАЙ!!!"; _getch(); return 0; } int pokaz(int& colstr, int& colsto, double arr[str][sto]) { if ((colstr > 0 && colstr <= str) && (colsto > 0 && colsto <= sto)) { int i, j; for (i = 0; i < colstr; i++) { for (j = 0; j < colsto; j++) { printf("%7.1lf ", arr[i][j]); } cout << endl; } } else cout << "Переделывай, кому говорю!?"; _getch(); return 0; } int tabl(int& colstr, int& colsto, double arr[str][sto]) { int i, j; int k = 0; bool flag = 0; int ib = colstr - 1; int jr = colsto - 1; int it = 0; int jl = 0; int t = 0; int tt = colstr * colsto; int res = 0; if ((colstr <= 0 || colstr > str) || (colsto <= 0 || colsto > sto)) { res = 1; } else { t = 0; while (t < tt) { j = jr; for (i = ib; (i >= it)&&(t<tt); i--) { t++; if (arr[i][j] == 0) { flag = 1; } else if (arr[i][j] > 0) { if (flag == 1) { k = k + 1; } } else { if (flag == 1) flag = 0; } } jr--; i = it; for (j = jr; (j >= jl) && (t < tt); j--) { t++; if (arr[i][j] == 0) { flag = 1; } else if (arr[i][j] > 0) { if (flag == 1) { k = k + 1; } } else { if (flag == 1) flag = 0; } } it++; j = jl; for (i = it; (i <= ib) && (t < tt); i++) { t++; if (arr[i][j] == 0) { flag = 1; } else if (arr[i][j] > 0) { if (flag == 1) { k = k + 1; } } else { if (flag == 1) flag = 0; } } jl++; i = ib; for (j = jl; (j <= jr) && (t < tt); j++) { t++; if (arr[i][j] == 0) { flag = 1; } else if (arr[i][j] > 0) { if (flag == 1) { k = k + 1; } } else { if (flag == 1) flag = 0; } } ib--; } } cout << endl; cout << k <<endl; _getch(); return 0; } int main() { SetConsoleCP(1251); SetConsoleOutputCP(1251); int i, j, k, colstr, colsto, spiral1, spiral2, t; bool flag; bool x1 = 0; bool x2 = 0; bool x3 = 0; double arr[100][100]; menu(); do { cin >> t; system("cls"); if (t == 1) { vvod(colstr, colsto); x1 = 1; } if ((t == 2) && (x1 == 1)) { array1(colstr, colsto, arr); x2 = 1; } if ((t == 3) && (x1 == 1)) { array_r(colstr, colsto, arr); x3 = 1; } if (t == 4) pokaz(colstr, colsto, arr); if ((t == 5) && (x1 == 1) && (x2 == 1 || x3 == 1)) { tabl(colstr, colsto, arr); } system("cls"); menu(); } while (t != 6); }
0
|
5087 / 2658 / 2350
Регистрация: 10.12.2014
Сообщений: 10,052
|
|
04.02.2021, 10:26 | 6 |
Nicool, некрофилия!
Теме в прошлом году 12 лет исполнилось. А поднимали её последний раз 7 лет назад. Да ещё и не на том ЯП…
0
|
04.02.2021, 10:26 | |
04.02.2021, 10:26 | |
Помогаю со студенческими работами здесь
6
Начиная с первого элемента и перемещаясь против часовой стрелки, вывести все элементы матрицы по спирали Как изменить массив чтоб он начинался с левого верхнего угла и закручивался по спирали против часовой стрелки Паскаль, графика. Движущийся шар по спирали по часовой и против часовой стрелки Вывести элементы матрицы, начиная из центра и против часовой стрелки, начиная идти направо Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Блоги программистов | |||||
Как перейти с Options API на Composition API в Vue.js
BasicMan 06.01.2025
Почему переход на Composition API актуален
В мире современной веб-разработки фреймворк Vue. js продолжает эволюционировать, предлагая разработчикам все более совершенные инструменты для создания. . .
|
Архитектура современных процессоров
inter-admin 06.01.2025
Процессор (центральный процессор, ЦП) является основным вычислительным устройством компьютера, которое выполняет обработку данных и управляет работой всех остальных компонентов системы. Архитектура. . .
|
История создания реляционной модели баз данных, правила Кодда
Programming 06.01.2025
Предпосылки создания реляционной модели
В конце 1960-х годов компьютерная индустрия столкнулась с серьезными проблемами в области управления данными. Существовавшие на тот момент модели данных -. . .
|
Полезные поделки на Arduino, которые можно сделать самому
raxper 06.01.2025
Arduino как платформа для творчества
Arduino представляет собой удивительную платформу для технического творчества, которая открывает безграничные возможности для создания уникальных проектов. Эта. . .
|
Подборка решений задач на Python
IT_Exp 06.01.2025
Целью данной подборки является предоставление возможности ознакомиться с различными задачами и их решениями на Python, что может быть полезно как для начинающих, так и для опытных программистов.
. . .
|
С чего начать программировать микроконтроллеры
raxper 06.01.2025
Введение в мир микроконтроллеров
Микроконтроллеры стали неотъемлемой частью современного мира, окружая нас повсюду: от простых бытовых приборов до сложных промышленных систем. Эти маленькие. . .
|
Из чего собрать игровой компьютер
inter-admin 06.01.2025
Сборка игрового компьютера требует особого внимания к выбору комплектующих и их совместимости. Правильно собранный игровой ПК не только обеспечивает комфортный геймплей в современных играх, но и. . .
|
Обновление сайта www.historian.by
Reglage 05.01.2025
Обещал подвести итоги 2024 года для сайта. Однако начну с того, что изменилось за неделю. Добавил краткий урок по последовательности действий при анализе вредоносных файлов и значительно улучшил урок. . .
|
Как использовать GraphQL в C# с HotChocolate
Programming 05.01.2025
GraphQL — это современный подход к разработке API, который позволяет клиентам запрашивать только те данные, которые им необходимы. Это делает взаимодействие с API более гибким и эффективным по. . .
|
Модель полного двоичного сумматора с помощью логических операций (python)
AlexSky-coder 04.01.2025
def binSum(x:list, y:list):
s=^y]
p=x and y
for i in range(1,len(x)):
s. append((x^y)^p)
p=(x and y)or(p and (x or y))
return s
x=list()
y=list()
|
Это мы не проходили, это нам не задавали...(асихронный счётчик с управляющим сигналом зад
Hrethgir 04.01.2025
Асинхронный счётчик на сумматорах (шестиразрядный по числу диодов на плате, но наверное разрядов будет больше - восемь или шестнадцать, а диоды на старшие), так как триггеры прошли тестирование и. . .
|
Руководство по созданию бота для Телеграм на Python
IT_Exp 04.01.2025
Боты для Телеграм представляют собой автоматизированные программы, которые выполняют различные задачи, взаимодействуя с пользователями через интерфейс мессенджера. В данной статье мы рассмотрим,. . .
|