Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Разработать программу с удобным пользовательским интерфейсом, реализующую следующие функции Разработать программу с удобным пользовательским интерфейсом, реализующую следующие функции: Синтаксический и семантический анализ понятия список геометрических фигур. _______Геометрическая... https://www.cyberforum.ru/ cpp-beginners/ thread2845694.html Работа со скобками и вывод в txt C++
Нужна помощь в решении задачи: Дан текстовый файл INPUT.TXT. Проверить в тексте файла правильности расстановки открывающих и закрывающих скобок ‘(‘, ‘)’, ‘{‘, ‘}’, ‘’. Использовать стек (массив)....
C++ Реализовать вторую версию программы реализовать вторую версию программы, вместо массива использовать односвязный список; элементы добавлять таким образом, чтобы сохранялась упорядоченность списка по названиям пунктов назначения... https://www.cyberforum.ru/ cpp-beginners/ thread2845690.html C++ Распечатать имена сотрудников, возраст который превышает 33 года, код тоже скидываю https://www.cyberforum.ru/ cpp-beginners/ thread2845675.html
У меня мысль пришла только через файл чтобы каждый раз нужно записывать человека которому более 33 лет но как сделать чтобы оно само считало с структур я не знаю #include <iostream> #include...
C++ Как можно оптимизировать программу?
Здравствуйте. Решил заняться олимпиадным программированием, и сейчас пытаюсь решить одну задачу. Далее следует ее краткое изложение: Входные данные В первой строке входных данных дано два целых...
C++ Создание базы данных, новичёк в программировании потому затуп( Содержание базы: Прайс-лист магазина мобильных телефонов: фирма-производитель (список), модель, диагональ экрана в дюймах, цена, дата поставки, наличие двух SIM-карт (Да / нет) Параметры... https://www.cyberforum.ru/ cpp-beginners/ thread2845660.html
C++ Перевод с Паскаля на С++ https://www.cyberforum.ru/ cpp-beginners/ thread2845645.html
const n=5; var a:arrayof integer; i,j:integer; begin for i:=1 to n do begin for j:=1 to n do begin if(i=n div 2+1)or(j=n div 2+1)then a:=1 else a:=0;
C++ Перевод с Паскаля на С++
const n=5; var a:arrayof integer; i,j:integer; begin for i:=1 to n do begin for j:=1 to n do begin if((i in )and(j in ))or((i=n div 2+1)and(j=n div 2+1))then a:=0 else...
C++ Перевод с Паскаля на С++ https://www.cyberforum.ru/ cpp-beginners/ thread2845643.html
const n=5; var a:arrayof integer; i,j:integer; begin for i:=1 to n do begin for j:=1 to n do begin if(i in )or(j in )or(j=i)or(j=n-i+1)then a:=1 else a:=0;
C++ Перевод с Паскаля на С++ const n=5; var a:array of integer; i,j,k,r : integer; begin r:=0;//расстояние от края до строки k:=n*n;//значение в очередку repeat inc(r); for i:=r to n-r+1 do begin... https://www.cyberforum.ru/ cpp-beginners/ thread2845642.html
C++ Перевод с Паскаля на С++
const n=6; const n1=4; var a:array of integer; b:array of integer = (0,1,3,6,10,14,2,4,7,11,15,18,5,8,12,16,19,21,9,13,17,20,22,23); i,j,k:integer; begin writeln('полученный массив'); ...
C++ Двусвязный список, последовательность чисел Вводится последовательность чисел и нужно определить, количество чисел, которые встречаются в последовательности только один раз ( счётчик cot), как это реализовать? #include <iostream> using... https://www.cyberforum.ru/ cpp-beginners/ thread2845622.html
0 / 0 / 0
Регистрация: 27.05.2021
Сообщений: 12
0

Координаты точек - C++ - Ответ 15555123

08.06.2021, 22:52. Показов 593. Ответов 0
Метки (Все метки)

Помоги решить задачку. Не могу определить функцию get_work_rect(); для ввода координат.

C++
1
2
struct Point { int x, y; };
struct Rect { int x1, y1, x2, y2; };
Есть функция, которая что-то делает с точкой по заданным координатам:

C++
1
2
3
4
void process_point( Point pt )
{
 std::cout << "(" << q.x << "," << q.y << ") ";
}
Обычный цикл по точкам (построчно):

C++
1
2
3
4
5
for ( int y = e.y1; y < e.y2; ++y )
for ( int x = e.x1; x < e.x2; ++x )
{
    process_point( Point{x,y} );
}
Хочется, чтобы можно было писать вот так:

C++
1
2
3
4
5
Rect e = get_work_rect();
for ( auto v : e )
{
    process_point( v );
}
Не получая дополнительных накладных расходов
можно пренебречь расходами O(1) по памяти и времени, но не O(n)
Для этого понадобится кое-что добавить в struct Rect {}.(data-members добавлять нельзя, слишком многое завязано на Point/Rect).

Вот сам код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include "header.h"
 
struct point {
    int x;
    int y;
};
struct rect {
    int x2;
    int y2;
    int x1;
    int y1;
public:
    int get_work_rect();
};
 
void process_point(point q){
    cout << "(" << q.x << "," << q.y << ")";
}
void process_rect(rect e){
    for (int y = e.y1; y < e.y2; ++y)
        for (int x = e.x1; x < e.x2; ++x){
            process_point(point{ x,y });
        }
}
 
int main(){
    rect e = get_work_rect();
    for (auto v : e){
        process_point(v);
    }
    return 0;
}
 
#pragma once
#include <iostream>
 
using namespace std;
 
int get_work_rect(){
 
}


Вернуться к обсуждению:
Координаты точек C++
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.06.2021, 22:52
Готовые ответы и решения:

Даны действительные числа (xi,yi), I =1,2,.n. - координаты точек на плоскости. Определить количество точек, которые по
Вариант 27

Ввести координаты точек. Вычислить расстояния от всех точек до точки, введенной последней
С клавиатуры вводятся координаты точек на плоскости в виде строк, представляющих пару в формате...

Дана матрица, хранящая координаты точек. Вывести расстояния точек от начала координат
Дана матрица с 2 строками и 10 столбцами. Первый элемент каждого столбца представляет абциссу, а...

Ввести координаты 10 точек на плоскости и определить в какой из четвертей больше всего точек
Всем привет. Есть задание ввести координаты 10 точек. Не без помощи интернета смог написать код,...

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.06.2021, 22:52
Помогаю со студенческими работами здесь

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

Определить, сколько точек пересечения имеют прямая и окружность и найти координаты этих точек
Привет. Тут такое дело. В общем я неплохо знаю сам язык, но вот задачку решить не могу. Т.е не знаю...

Вычислить количество точек, попадающих в заданную область и координаты точек, не принадлежащих этой области
Ввести координаты n точек. Вычислить количество точек, попадающих в кольцо с внутренним радиусом R1...

Получить координаты точек сферы, равноотстоящие от соседних точек
Здравствуйте. Знает ли кто-нибудь, как это сделать. Сгенерировать сферу я и так могу, то мне именно...

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

Даны координаты точек х1, у1, ... х15, у15. Если точка попадает на плоскость, ограниченную кругом x2 + y2 = R2 - вывести ее координаты
Лабораторная работа 5. Одномерные массивы * * Для задач этого раздела необходимо составить...

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