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

Тестовое задание для трудоустройства - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как в с++ прописать оператор Shape, чтобы при перемещении по форме он менял свои очертания? http://www.cyberforum.ru/cpp-beginners/thread990564.html
Как в с++ прописать оператор Shape, чтобы при перемещении по форме он менял свои очертания?) например, в левом верхнем углу он был квадратом, в правом верхнем чтобы стал кругом. вот фрагмент кода, где shape перемещается в левом верхнем и правом верхнем углу void __fastcall TForm2::PaintBox1MouseMove(TObject *Sender, TShiftState Shift, int X, int Y) { Form2->Refresh(); if...
C++ Массивы. Указатели. Обработка одномерных массивов Определите сумму элементов массива, расположенных до максимального. Не вводить максимальный элемент, а находить его) http://www.cyberforum.ru/cpp-beginners/thread990559.html
Написать программу, вычисляющую значение выражения C++
Помогите решить задачку с использованием основных операторов языка С++
Массивы, указатели, обработка одномерных массивов C++
Вывести на экран все числа заданной последовательности, индексы которых есть степени тройки. Определить в заданной последовательности целых чисел количество чисел, которые являются степенью тройки. Добавлено через 50 минут кто-нибудь, что-нибудь.... Добавлено через 6 часов 26 минут ау народ! Добавлено через 21 час 22 минуты никто?
C++ Создать класс с данными о человеке http://www.cyberforum.ru/cpp-beginners/thread990513.html
Создать класс с данными о человеке. В классе должны отражаться следующие сведения: идентификационный код, год рождения и заработная плата, а также функции ввода / вывода этих сведений. После этого создать класс линейного массива с N элементов с данными о людях ( N > 0 - константа ). В классе должна быть описана единственное свойство - массив со сведениями о людях. Кроме этого , должны быть...
C++ Последовательность Даны натуральное число n,действительные числа а,x1....xn (x1<=x2<=...<=xn).Получить последовательность y1...yn+1,членами которой являются члены последовательности x1....xn и значение а ,такую ,что y1<=y2...<=yn+1 БЕЗ МАССИВА,задание 232 во вложенных файлах подробнее

Показать сообщение отдельно
Shtirliz72
201 / 161 / 38
Регистрация: 25.10.2013
Сообщений: 527
28.10.2013, 17:40     Тестовое задание для трудоустройства
Цитата Сообщение от castaway Посмотреть сообщение
Это нормально.
Ну если они прям такое имели в виду, то хбз. Тогда у меня есть лишь риторический вопрос: на скольких текстах тестировалась программа?
Ну и вопросы:
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#include <iostream>
#include <string>
#include <fstream>
#include <cstring>
 
using namespace std;
 
void deleteCommentsInFile(ifstream& file){
    string temp_str;
    string rezult_str;
 
    //активность многострочного комментария
    bool multiLineComment = false;
 
    while(!file.eof())
    {
        //строчное считывание
        getline(file, temp_str, '\n'); // Зачем если getline(file, temp_str) делает тоже самое?
 
        //поиск однострочных комментариев
        if(temp_str.find("//") != string::npos){ // Почему find("//") не запоминается, а вызывается несколько раз?
            temp_str.erase(temp_str.find("//"),temp_str.length() - temp_str.find("//"));    
        }
        //поиск многострочных комментариев
        else if(temp_str.find("/*") != string::npos) /* в тексте вида "*asdasd*/ sadas; //---" не будет отсекать первый комментарий. Но хбз, может по заданию это и не нужно. Плюс, как и выше - почему find("/*") не запоминается, а вызывается несколько раз? */
        {
            //удаляем всё что после многострочного комментария
            temp_str.erase(temp_str.find("/*"), temp_str.length() - temp_str.find("/*")); //  А если строка вида "something; //                                                                      /* comment */ something2;" ? Или так по условию тоже нельзя? */
 
            //если что-то было до него, то добавляем это в результат
            if(temp_str.length())
                rezult_str += temp_str;
 
            //пропускаем всё, пока не встретим конец многострочного комментария " */ " 
            multiLineComment = true; // зачем вообще нужна данная переменная, если 
                                               // выход из отбраковки строк всё лучше сделать по break через "*/" ? */
            file >> temp_str; // Зачем так, если начал через getline
            while(multiLineComment == true)
            {
                int strInd = 0;
                for(strInd; strInd < temp_str.length(); strInd++) // for(strId - это вообще зачем такое? 
                                                                                  // и чем find("*/") не угодило? */
                {   
                    if(temp_str.at(strInd) == '*' && temp_str.at(strInd + 1) == '/'){
                        multiLineComment = false;
                        strInd += 2;
                    }
                    //добавляем всё, что было после закрывающего тега в строке с ним
                    if(multiLineComment == false){ 
                        while(strInd < temp_str.length())
                        {
                            rezult_str += temp_str.at(strInd);
                            ++strInd;
                        } // вот эти 15 строк кода можно было заменить 3мя командами: size_t p_st = temp_str.find("*/"), temp_str.erase(0, p_st), и rezult_str += temp_str; 
                        rezult_str.append("\n");
                    }
                }
                file >> temp_str;  
            }
        }
        rezult_str += temp_str; // у тебя следующая строка за строкой со "*/" случайно автоматически не запишется?
        rezult_str.append("\n");  
    }
 
    //вывод на консоль и запись в файл
    cout << rezult_str << endl;
    ofstream outFile("out.txt");
    outFile << rezult_str;
    outFile.close();
}
 
int main()
{
    //открываем файл
    ifstream file("input.txt");
  
    //если файл не открылся
    if(!file)
    {
        cerr<<"Error when try to open \"input.txt\"."<<endl;
        exit(-1); // Зачем здесь exit(-1)? Когда можно выйти обычным return 1?
    }else{ // Зачем здесь else?
        deleteCommentsInFile(file);
    }
    file.close();
    return 0;
Это только глазком глянул.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru