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

Цикл и вектор - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Массив структур http://www.cyberforum.ru/cpp-beginners/thread208452.html
Информация о дисциплине содержит название, количество часов лекций, количество часов практических занятий, фамилию преподавателя. Вывести информацию о дисциплинах, которые читаются заданным преподавателем. #include<iostream.h> #include<conio.h> #include<math.h> #include<string.h> #include<stdlib.h> void main(void) { clrscr();
C++ Текстовые файлы Добрый день! Мне необходимо обработать текстовый файл, подсчитав в нем количество слов, предложений и абзацев. В каждой строчке не более 20000 символов. Пишу программу #include <stdio.h> #include <string.h> int control (char *str) { int i = 0, k = 0; while ((str != '\0') || (str != '\n')) { if (((str >= 'A' && str <= 'Z') || (str >= 'a' && str <= 'z')) && ((str !=... http://www.cyberforum.ru/cpp-beginners/thread208439.html
C++ шаблоны и связь между файлами в проекте
Собственно, проблема в следующем: если убрать комментарии в файле list.h, то все нормально компилируется. если убрать комментарии в файле list.cpp, то в point.cpp выводится ошибка "undefined reference" в принципе, проблема решаема, например, подключением в point.h вместо list.h list.cpp, но стало интересно почему появляется эта ошибка? point.h #include "list.h"
Написать программу, которая считает английский текст из файла и выводит на экран слова, начинающиеся с гласных букв. C++
нужно чтобы в файл записывалось пользователем русские и английские слова, программа програма считывала только анг язык, и выводила только те слова (агл) которые начинаются на гласную букву)
C++ 1 программа по структуре и 2 по символьным строкам http://www.cyberforum.ru/cpp-beginners/thread208416.html
1. Если первый аргумент командной строки - опция -а, то распечатать остальные аргументы без их первых символов, а если первой идет опция -r, то распечатать аргументы через один в обратном порядке. (Если аргументов нет - выдать сообщение) 2. Распечатать те слова, в которых либо буквы упорядочены по алфавиту, либо каждая буква входит в слово не менее двух раз (т.е. слова типа BEER, АBBА). 3....
C++ Программирование с использованием классов. Помогите решить. Создать класс квадрат, член класса - длина стороны. Предусмотреть в классе методы вычисления и вывода сведений о фигуре – периметр, площадь, диагональ. Создать производный класс – куб, добавить в класс метод определения объема фигуры, перегрузить методы расчета площади и вывода сведений о фигуре. Написать программу, демонстрирующую работу с классом: дано N1 квадратов и N2... подробнее

Показать сообщение отдельно
Iworb
анимешник++
 Аватар для Iworb
93 / 60 / 2
Регистрация: 03.11.2009
Сообщений: 411
11.12.2010, 15:57     Цикл и вектор
Проблема в том, что оно входит в цикл ака for(i=0;i<-1;i++)
Сразу даю кусок кода =)
В функцию передаем координаты вершин фигуры, прямоугольник, по которому отсекаем ее и цвет
points - vector<point> (в point находятся x и y)
rect - структура из left, right, top, bottom
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
void Cross(points p, rect r, int cc)
{
    p.push_back(p[0]);//добавим в начало первую точку, чтобы всю фигуру анализировать
    int i,j;
    points swap(15), tmp(15);
    point temp;
    swap.clear();
    tmp.clear();
    //left-----------------------------
    for(i=0;i<p.size()-1;i++)//отсечение фигуры по x=r.left. Новая фигура в tmp
    {
        if(p[i].x<r.left&&p[i+1].x<r.left) continue;
        if(p[i].x>=r.left&&p[i+1].x>=r.left)
        {
            tmp.push_back(p[i+1]);
            continue;
        }
        if(p[i].x<=r.left&&p[i+1].x>=r.left)
        {
            temp.x=r.left;
            temp.y=p[i].y+(p[i].y-p[i+1].y)*(r.left-p[i].x)/(p[i].x-p[i+1].x);
            tmp.push_back(temp);
            tmp.push_back(p[i+1]);
            continue;
        }
        if(p[i].x>=r.left&&p[i+1].x<=r.left)
        {
            temp.x=r.left;
            temp.y=p[i].y+(p[i].y-p[i+1].y)*(r.left-p[i].x)/(p[i].x-p[i+1].x);
            tmp.push_back(temp);
            continue;
        }
    }
    if(tmp.size()>0) tmp.push_back(tmp[0]);
    //right----------------------------
    for(i=0;i<tmp.size()-1;i++)//изначально фигура не пересекает область и tmp.size() возвращает 0, но в цикл оно заходит(((
    {
        if(tmp[i].x>r.right&&tmp[i+1].x>r.right) continue;
        if(tmp[i].x<=r.right&&tmp[i+1].x<=r.right)
        {
            swap.push_back(tmp[i+1]);
            continue;
        }
        if(tmp[i].x<=r.right&&tmp[i+1].x>=r.right)
        {
            temp.x=r.right;
            temp.y=((r.right-tmp[i].x)*(tmp[i+1].y-tmp[i].y))/(tmp[i+1].x-tmp[i].x)+tmp[i].y;
            swap.push_back(temp);
            continue;
        }
        if(tmp[i].x>=r.right&&tmp[i+1].x<=r.right)
        {
            temp.x=r.right;
            temp.y=((r.right-tmp[i].x)*(tmp[i+1].y-tmp[i].y))/(tmp[i+1].x-tmp[i].x)+tmp[i].y;
            swap.push_back(temp);
            swap.push_back(tmp[i+1]);
            continue;
        }
    }
    figure(swap,0xff0000ff,0xff0000ff);
    //---------------------------------
    glBegin(GL_LINE_STRIP);
    glEnd();
    p.pop_back();
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 20:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru