Форум программистов, компьютерный форум CyberForum.ru

Квадраты - C++

Восстановить пароль Регистрация
 
Ники
1 / 1 / 0
Регистрация: 21.04.2010
Сообщений: 50
01.05.2010, 01:40     Квадраты #1
Написать программу на с++
Дан файл действительных чисел, каждая тройка чисел определяет на плоскости квадрат со сторонами, параллельными координатным осям, причем первые два числа определяют центр квадрата, а третье число - длину его стороны. Определить, имеются ли на плоскости точки, принадлежавшие всем квадратам.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.05.2010, 01:40     Квадраты
Посмотрите здесь:

C++ разбить прямоугольник на квадраты
квадраты с условием!!! C++
C++ Квадраты
C++ полные квадраты
C++ Режем прямоугольник на квадраты
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
01.05.2010, 06:06     Квадраты #2
В чем трудности?
Заводим четыре переменных типа double min_x, max_x, min_y, max_y. При считывании данных о первом квадрате, присваиваем этим переменные такие значения: min_x самую левую точку квадрата (x центра минус длинна стороны разделенная на 2), max_x самую правую точку, min_y самую нижнюю точку, max_y самую верхнюю точку. Затем при считывании очередного квадрата сравниваем его данные (самые верхние, нижние, левые и правые точки) со значениями в min_x, max_x, min_y, max_y. При необходимости значения в min_x, max_x, min_y, max_y будут изменяться. Если общих точек с очередным квадратом нет, то заканчиваем поиск и выдаем ответ, что общих точек нет. Если дошли до конца, то общие точки принадлежавшие всем квадратам есть и ограничены они координатами min_x, max_x, min_y, max_y.
Ники
1 / 1 / 0
Регистрация: 21.04.2010
Сообщений: 50
02.05.2010, 03:33  [ТС]     Квадраты #3
Трудность в том, как считать эти числа из файла...
И еще, что делать, если кол-во чисел в этом файле не кратно трем
Заранее спасибо
Vorona
Peace 2 all shining faces
 Аватар для Vorona
660 / 522 / 44
Регистрация: 05.03.2010
Сообщений: 1,256
02.05.2010, 04:44     Квадраты #4
Вводите, к примеру: C:\bcpp\input.txt и на экран выводятся числа из файла либо ошибка открытия файла
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
#include <stdio.h>
#include <conio.h>
#include <malloc.h>
 
int main(){
    int *array, i = 0;
        char filename[100];
    FILE *in;
 
        printf("Enter path to file: ");
    scanf("%s", &filename);
    if((in = fopen(filename, "r")) == NULL){
        fprintf(stderr, "Error: File can't be read\n");
        getch();
        return 1;
    }
    
    array = (int*)malloc(1*sizeof(int));
    
    while(!feof(in)){
        fscanf(in, "%d", &array[i]);
        i++;
        array = (int*) realloc(array, (i+1)*sizeof(int));
    }
    
    for(int j = 0; j < i; j++)
        printf("%d ", array[j]);
 
    fclose(in);
    free(array);
 
    getch();
    return 0;
}
Добавлено через 18 минут
насчет кратности трем, то ничего страшного:
в программе выше у нас как бы i является счетчиком элементов массива, результат 2ух строк ниже даст нам то значение i, которое и будет означать кол-во элементов массива, кратное трем)
C
1
2
while((i % 3) != 0)
    i--;
можно, в принципе, в 25 строку вставить этот кусочек и на экран будут выведены элементы, кол-во которых кратно трем)
Yandex
Объявления
02.05.2010, 04:44     Квадраты
Ответ Создать тему
Опции темы

Текущее время: 15:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru