Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.86/35: Рейтинг темы: голосов - 35, средняя оценка - 4.86
1 / 1 / 0
Регистрация: 07.02.2012
Сообщений: 3
1

Поиск глобальных переменных

07.02.2012, 16:14. Показов 6795. Ответов 35
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть задачка, которую не могу решить. Дано 9000 .cpp файлов, которые являют собой полноценные программы со своими мейнами. Нужно найти для каждого файла его глобальные переменные. Приветствуются отсылки к каким-нибудь тулзам, которые это умеют делать. Например, как это возможно вытянуть из линкера VS. Парсер написать пытаюсь, но это сложная задача для меня.

Добавлено через 12 минут
Помогите пожалуйста!очень нужно
1
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.02.2012, 16:14
Ответы с готовыми решениями:

Определение глобальных переменных
Доброго времени суток! Интересует следующий вопрос - Возможно ли определение глобальных переменных...

Описание глобальных переменных
помогите, плиз, с такой незадачей.. в каком из файлов нужно обозначить глобальные переменные, чтоб...

Инициализация глобальных переменных
Требуется инициализировать 2 массива и 2 переменные, которые используются в 2-х функциях, с...

Объявление глобальных переменных
#include "stdafx.h" #include <conio.h> #include <stdio.h> void main (int x, int y) {...

35
Эксперт С++
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
07.02.2012, 18:23 21
Author24 — интернет-сервис помощи студентам
taras atavin, ну вот, через 3 сообщения мне удалось из вас вытянуть то, что вы имели ввиду... Доступно излагаете.
Каюсь, об этом не подумал. Но все равно до сих пор не понял, почему вы откинули {} и оставили только ().
0
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
07.02.2012, 18:27 22
Цитата Сообщение от soon Посмотреть сообщение
Под именем я подразумевал наличие (), если вы об этом.
Про имя во-первых вообще ни слова не было. А во-вторых как об это догадаться, если имена есть и у переменных и даже у типов?

Добавлено через 2 минуты
Цитата Сообщение от silent_1991 Посмотреть сообщение
юсь, об этом не подумал. Но все равно до сих пор не понял, почему вы откинули {} и оставили только ().
C++
1
2
3
4
5
int f(int x); // Это по твоей логике опять переменная
int main()
{
 return 0;
}
, хотя {} есть только у main.
0
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
07.02.2012, 18:29 23
Цитата Сообщение от taras atavin Посмотреть сообщение
Про имя во-первых вообще ни слова не было.
Цитата Сообщение от soon Посмотреть сообщение
И по имени.
Цитата Сообщение от taras atavin Посмотреть сообщение
А во-вторых как об это догадаться, если имена есть и у переменных и даже у типов?
Речь шла о функции, да? А имя функции подразумевает наличие (). Дак о чем вы собирались догадываться?
0
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
07.02.2012, 18:30 24
А ну с учётом классов, структур и енамов ещё следует их тоже проверить по ключевым словам и отсеить содержание соответствующих {}.
0
Эксперт С++
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
07.02.2012, 18:32 25
Цитата Сообщение от taras atavin Посмотреть сообщение
хотя {} есть только у main.
И что?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// Глобальная область
int foo(int a, int b); // Прототип функции
// Глобальная область
void bar()
{
    // Тарам-пам-пам
}
// Глобальная область
class Moo
{
    // Тело класса
};
// Глобальная область
int main()
{
    return 0;
}
// Глобальная область
Как видно, глобальная область находится за пределами блоков {}. В ней и надо искать.
0
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
07.02.2012, 18:35 26
Цитата Сообщение от silent_1991 Посмотреть сообщение
И что?
А то, что прототип функции {} не имеет, но и глобальной переменной не является.
0
В астрале
Эксперт С++
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
07.02.2012, 18:52 27
Кстати я поторопился. Я в своем коде не учел некоторых вещей. Забыл keyword using. Т.е. using std::cout; и т.д. Забыл typedef-ы
0
Эксперт С++
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
07.02.2012, 19:46 28
taras atavin, ай, вам как об стенку горох. Замяли.
0
2505 / 1480 / 37
Регистрация: 14.09.2009
Сообщений: 2,740
01.05.2012, 19:19 29
Я тоже занимаюсь этой задачей, и у меня возникла проблема. Ответ получается 218 кб, а ограничение на посылку 200. Конечно может у меня не правильно, но есть повод задуматься, что ошибка все-таки у них. Т.к первый файл у них
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
#include<iostream>
#include<vector>
#include<algorithm>
 
size_t N,M;
const size_t MAXN = 40000;
std::vector<std::pair<size_t,size_t> > graph[MAXN],query[MAXN],qr;
size_t p[MAXN], ancestor[MAXN];
bool u[MAXN];
size_t ansv[MAXN];
size_t cost[MAXN];
...
А в задании, в примере, указан такой ответ для данного теста
000000.cpp ancestor ansv cost graph M N p qr query u
Т.е нет переменной MAXN. Может я не знаю таких тонкостей, что константные глобальные переменные, все-таки не глобальные?
0
0 / 0 / 0
Регистрация: 20.08.2012
Сообщений: 4
23.08.2012, 21:12 30
Цитата Сообщение от Грымзик Посмотреть сообщение
Я тоже занимаюсь этой задачей, и у меня возникла проблема. Ответ получается 218 кб, а ограничение на посылку 200. Конечно может у меня не правильно, но есть повод задуматься, что ошибка все-таки у них. Т.к первый файл у них
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
#include<iostream>
#include<vector>
#include<algorithm>
 
size_t N,M;
const size_t MAXN = 40000;
std::vector<std::pair<size_t,size_t> > graph[MAXN],query[MAXN],qr;
size_t p[MAXN], ancestor[MAXN];
bool u[MAXN];
size_t ansv[MAXN];
size_t cost[MAXN];
...
А в задании, в примере, указан такой ответ для данного теста
000000.cpp ancestor ansv cost graph M N p qr query u
Т.е нет переменной MAXN. Может я не знаю таких тонкостей, что константные глобальные переменные, все-таки не глобальные?
хммм, мне тоже интересно на счет глобальности констант
0
179 / 127 / 25
Регистрация: 12.01.2012
Сообщений: 623
23.08.2012, 22:32 31
Цитата Сообщение от silent_1991 Посмотреть сообщение
Надо смотреть все переменные, которые находятся вне блоков
А почему namespace отменяет глобальность? По-моему, глобальные перменные - это переменные доступные из любого места программы. Даже в какой-то степени public статическое поле любого класса - то же своего рода глобальная переменная
0
vOOner
17.10.2012, 19:56 32
Цитата Сообщение от Грымзик Посмотреть сообщение
Я тоже занимаюсь этой задачей, и у меня возникла проблема. Ответ получается 218 кб, а ограничение на посылку 200. Конечно может у меня не правильно, но есть повод задуматься, что ошибка все-таки у них. Т.к первый файл у них
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
#include<iostream>
#include<vector>
#include<algorithm>
 
size_t N,M;
const size_t MAXN = 40000;
std::vector<std::pair<size_t,size_t> > graph[MAXN],query[MAXN],qr;
size_t p[MAXN], ancestor[MAXN];
bool u[MAXN];
size_t ansv[MAXN];
size_t cost[MAXN];
...
А в задании, в примере, указан такой ответ для данного теста
000000.cpp ancestor ansv cost graph M N p qr query u
Т.е нет переменной MAXN. Может я не знаю таких тонкостей, что константные глобальные переменные, все-таки не глобальные?
Уважаемый, Грымзик! Есть ли у вас какие продвижение в данной задаче? Подскажите куда и как копнуть?!
Кактус
67 / 67 / 19
Регистрация: 23.05.2012
Сообщений: 342
29.07.2013, 21:12 33
Мне интересно, как вы будете обрабатывать вот такое:
C++
1
2
3
4
5
6
int f()
{
      cout<<"}"<<endl;
      int a=0;
      return;
}
Тут без полного разбора задачу не решить. Кстати, не подскажите где взять эти чертовы исходники? Условие задачи я прочел, че отсылать им туда и откуда брать эту задачу - ума не приложу. Кнопка submit и только, а на вопросы никто не отвечает.
0
alsav22
29.07.2013, 21:14
  #34

Не по теме:

Цитата Сообщение от eocron Посмотреть сообщение
Мне интересно, как вы будете обрабатывать вот такое:
Послание в прошлое?

0
Кактус
67 / 67 / 19
Регистрация: 23.05.2012
Сообщений: 342
29.07.2013, 21:18 35
Просто прохожу сейчас стажировку.
0
Эксперт С++
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
30.07.2013, 07:22 36
Цитата Сообщение от eocron Посмотреть сообщение
Тут без полного разбора задачу не решить.
Вообще говоря, полный разбор - не такая уж большая проблема. Грамматика языка дана в стандарте, существует куча средств для генерации парсеров (тот же flex/bison), правила не будут слишком сложными (нет необходимости строить полное AST, мы же не компилировать собираемся). По сути, данный парсер не будет содержать практически никакой семантики, кроме вытягивания глобальных переменных, а всю остальную работу сделает генератор парсеров.
0
30.07.2013, 07:22
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.07.2013, 07:22
Помогаю со студенческими работами здесь

Использование глобальных переменных - моветон ли?
Ребят, очень часто вижу как отцы С++, когда проверяют чей-то код и обнаруживают там глобальные...

Массив (переписать без глобальных переменных)
Помогите написать ету програму без глобальных переменных #include &lt;cstdlib&gt; #include...

Объявление глобальных переменных в проекте Dev C++
Доброй ночи всем! Подскажите, пожалуйста, как правильно объявить глобальные переменные в проекте....

Быстрая сортировка без глобальных переменных
Реализовать двоичную сортировку, используя массив. Без использования функции...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
36
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru