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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.87
Rustam
12 / 12 / 3
Регистрация: 05.09.2009
Сообщений: 440
#1

Пять задач, включая задачу как обезвредить бомбу - C++

05.09.2009, 19:30. Просмотров 1937. Ответов 24
Метки нет (Все метки)

Задача N1

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


Задача N2

Человек вводит 10 чисел, замените 3 максимальным а 7 минимальным.
пример входных данных:
10,20,30,40,50,60,55,45,35,25;
пример выходных данных:
10,20,60,40,50,60,10,45,35,25;


Задача N3

"Осадки"
Вам даётсья задача зделать программу, которая работает с двумя текстовыми файламы (osadki.dat и osadki.rez) и делает при этом несколько вычислений. В 1. файл записаваетсья несколько строк. Первая строка содержит количество дней N, после которой следует количество строк (N). Начиная со второй строки в каждой записано два числа (отделены между собой пробелои) - температура воздуха и количество (в мм) осадков в день. Принимая во внимание, что
1) N <= 1000000
2) количество осадков не меньше 0 и не боль ше 100 мм
3) температура воздуха была между -50 и 50 градусами
4) если Температура меньше нуля падал снег,а во стольных случайах лил дождь
в файле osadki.rez надо вывести два числа отделённых между собой побелами - общая количество снега за все дни и общее количество дождя.
Пример
osadki.dat
3
-1 30
0 3
20 15

osadki.rez
30 18


Задача N4

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

Входные данные (файл METEOR.DAT):
В первой строке число T - количество секунд через которую метеориты
упадут на планету.
Во второй строке число N - количество телескопов.
В третьей строке находится 2*N чисел - координаты телескопов (x, в)
В четвертой строке число M - количество хранилищ.
В пятой строке находится 2*M чисел - координаты хранилищ (x, в)
В шестой строке число V - скорость транспортировки телескопов.

Примечание:
0<T<1000000 ; 0<N,M<100 ; -30000 <= x,y <=30000 ; 0<V<1000
T, N, M, x, в - цели.

Выходные даны: (файл METEOR.SOL):
В единственную строку файла записать максимальное количество телескопов,
которые могут быть спрятанные к началу падения метеоритов.
Пример METEOR.DAT:
10
4
1 7 3 7 5 7 100 100
2
2 7 4 7
0.1

Пример METEOR.SOL:
2


Задача N5

Взрывное устройство, которое было заложено неизвестным террористом, имеет N - лампочек, и M - переключателей.
Каждый переключатель изменяет состояние некоторых лампочек на противоположный. Для обезвреживания бомбы, необходимо выключить все лампочки.
Напишите программу, которая спасет мир.

Входные данные: (файл BOMBA.DAT):
В первой строке число N. (0<N<=100)
Во второй строке содержится N чисел, которые помечают состояние каждой лампочки (0 - выключенная, 1 - включенная).
В третьей строке содержится число M. (0<M<=100)
В каждом из следующих M строк содержится число K (количество лампочек состояние которых изменяет данный переключатель) и K чисел - номера соответствующих лампочек.
Выходные даны: (файл BOMBA.SOL):
Если бомбу обезвредить невозможно, запишите в исходный файл "NO" (без кавычек).
Если возможно спасти мир, то в первую строку запишите "YES" (без кавычек), а во вторую строку запишите номера переключателей которые необходимо задействовать.
Пример BOMBA.DAT:
5
0 1 1 0 1
4
3 2 3 4
3 1 4 5
2 4 5
2 2 4


P.S. Заранее большое спасибо, надеюсь, кто знает поможет мне!!!!!!!!!!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.09.2009, 19:30     Пять задач, включая задачу как обезвредить бомбу
Посмотрите здесь:
Отсортировать первые пять элементов массива по возрастанию, последние пять по убыванию C++
Ввести пять строк и из каждой строки вывести пять последних символа C++
C++ Пятью пять - двадцать пять
C++ Как вывести после запятой 3 символа включая нули
Подготовка к решению сложных задач и задач олимп.уровня C++
Как выполнить задачу с++ C++
C++ Как решить задачу?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ISergey
Maniac
Эксперт С++
1373 / 884 / 52
Регистрация: 02.01.2009
Сообщений: 2,653
Записей в блоге: 1
05.09.2009, 19:49     Пять задач, включая задачу как обезвредить бомбу #2
Задача N1

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <algorithm>
#include <iterator>
#include <sstream>
#include <string>
 
int main()
{
    std::string line;
    std::getline(std::cin, line);
    std::stringstream ss(line);
    std::copy(
        std::istream_iterator<std::string>(ss),
        std::istream_iterator<std::string>(),
        std::ostream_iterator<std::string>(std::cout, "\n"));
 
    return 0;
}
Rustam
12 / 12 / 3
Регистрация: 05.09.2009
Сообщений: 440
05.09.2009, 19:52  [ТС]     Пять задач, включая задачу как обезвредить бомбу #3
Большое спасибо ISergey за помощь!!!!!
valeriikozlov
Эксперт C++
4669 / 2495 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
05.09.2009, 22:02     Пять задач, включая задачу как обезвредить бомбу #4
Задача N3

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
#include <iostream.h>
#include <fstream.h>
 
int n;
int sum_sneg=0;
int sum_voda=0;
int i, temp;
int main()
{
    ifstream input("osadki.dat");
    input>>n;
    for(i=0; i<n; i++)
    {
        input>>temp;
        if(temp<0)
        {
            input>>temp;
            sum_sneg+=temp;
        }
        else
        {
            input>>temp;
            sum_voda+=temp;
        }
    }
    ofstream output("osadki.rez", ios::app);
    output<<sum_sneg<<"    "<<sum_voda<<endl;
 
return 0;
}
M128K145
Эксперт С++
8284 / 3503 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
05.09.2009, 22:40     Пять задач, включая задачу как обезвредить бомбу #5
№2
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
#include <iostream>
 
int main()
{
    setlocale(LC_ALL, "Rus");
    int mas[10], i;
    std::cout<<"Введите 10 целых чисел:\n";
    for(i = 0; i < 10; ++i)
        std::cin>>mas[i];
    int max(mas[0]);
    int min(mas[0]);
    for(i = 1; i < 10; ++i)
    {
        max = (mas[i] > max) ? mas[i] : max;
        min = (mas[i] < min) ? mas[i] : min;
    }
    std::cout<<"\nМаксимальное число: "<<max<<"\nМинимальное число: "<<min<<std::endl;
    mas[2] = max;
    mas[6] = min;
    std::cout<<"\nРезультирующий массив:\n";
    for(i = 0; i < 10; ++i)
        std::cout<<mas[i]<<' ';
    std::cout<<std::endl;
    system("pause");
    return 0;
}
Mozart
39 / 17 / 1
Регистрация: 21.08.2009
Сообщений: 63
06.09.2009, 13:08     Пять задач, включая задачу как обезвредить бомбу #6
Задача N5

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
#include <iostream.h>
#include <fstream.h>
 
int N,M;
bool Lamp[100];
bool Swith[100];
int Swithes[100][101];
int i,j;
 
bool Boom(int N){
     for(int i=0;i<N;i++) if(Lamp[i]) return 1;
     return 0;
}
 
bool Inc_sw(int M){
     for (int i=0;i<M;i++) 
         if (Swith[i]) Swith[i]=0;
         else {
              Swith[i]=1;
              return 0;
         } 
     return 1;
}
bool sw(int M){
     for (int i=0;i<M;i++) 
         if (Swith[i])
         for (int j=1;j<=Swithes[i][0];j++)
             if (Lamp[Swithes[i][j]-1]) Lamp[Swithes[i][j]-1]=0;
             else Lamp[Swithes[i][j]-1]=1;
     return 0;
}
int main(){
    for (i=0;i<100;i++) Lamp[i]=Swith[i]=0;
    for (i=0;i<100;i++) 
    for (j=0;j<101;j++) Swithes[i][j]=0;
 
    ifstream input("bomba.dat");
    input>>N;
    for (i=0; i<N; i++) input>>Lamp[i];
    input>>M;
    for (i=0; i<M; i++) {
        input>>Swithes[i][0];
        for (j=1;j<=Swithes[i][0];j++)input>>Swithes[i][j];
    }
    while (Boom(N)){
          sw(M);
          if (Inc_sw(M)) break;
          sw(M);    
    }
    ofstream output("bomba.sol", ios::app);
    if (Boom(N)) {
       output<<"NO"<<endl;
       return 0;
    } else {
           output<<"YES"<<endl;
           for (i=1;i<=M;i++) if (Swith[i-1])output<<i<<" ";
           output<<endl;
           return 0;
    } 
return 0;
}
Rustam
12 / 12 / 3
Регистрация: 05.09.2009
Сообщений: 440
06.09.2009, 14:18  [ТС]     Пять задач, включая задачу как обезвредить бомбу #7
Искренне благодарю всем за оказанную помощь!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Добавлено через 56 минут
Я скачал и установил компилятор Microsoft Visual Studio C++ 2008 Express Edition!!! (Вот ссылка с которой скачал http://www.microsoft.com/rus/express/). Я с ним где-то 1 месяц работал, сейчас не работает!!! Может ему какой-то ключ нужен????? Уже не могу, писать программы 2 месяца!!!!!!!!!!! Может есть и другие компиляторы которым не нужен ключ???(лучше если язык компилятора русский)!!!!!!!!!! Очень нужно, помогите пожалуйста!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Mozart
39 / 17 / 1
Регистрация: 21.08.2009
Сообщений: 63
06.09.2009, 14:43     Пять задач, включая задачу как обезвредить бомбу #8
скачай Dev-C++ на него не надо ни ключей ничего, фриварный, да в нем нет справки нормальной.
Если хочешь учить С++ для начала его хватит (если учишся по книге). А если вставлять готовые коды и компилировать - то и подавно.
А вобще есть фриварный Turbo C++ Explorer, я на нем все свои лабы делал.
Rustam
12 / 12 / 3
Регистрация: 05.09.2009
Сообщений: 440
06.09.2009, 16:48  [ТС]     Пять задач, включая задачу как обезвредить бомбу #9
Написал код на Dev C++, компилировал, ошибок и предупреждений не было, нажал на debug (отладка) очень быстро вышел консольное черное окно и исчезло, я не успел даже посмотреть, как нормально смотреть возможно это?????
RazorQ
577 / 344 / 9
Регистрация: 06.02.2009
Сообщений: 1,386
06.09.2009, 16:59     Пять задач, включая задачу как обезвредить бомбу #10
Rustam, в конце каждой программы, перед return 0; добавь system("pause");
odip
Эксперт С++
7156 / 3296 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
06.09.2009, 19:12     Пять задач, включая задачу как обезвредить бомбу #11
Задачу 4 про метеоритный дождь и телескопы никто не решил.
Mozart
39 / 17 / 1
Регистрация: 21.08.2009
Сообщений: 63
06.09.2009, 19:24     Пять задач, включая задачу как обезвредить бомбу #12
odip, У тебя есть прекрасная возможность =))
odip
Эксперт С++
7156 / 3296 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
06.09.2009, 19:29     Пять задач, включая задачу как обезвредить бомбу #13
Ну как обычно - самую сложную задачу оставили мне
Rustam
12 / 12 / 3
Регистрация: 05.09.2009
Сообщений: 440
06.09.2009, 19:43  [ТС]     Пять задач, включая задачу как обезвредить бомбу #14
Столкнулся с библиотекой <conio.h> и getch(). Они между собой связаны или нет?????

Добавлено через 1 минуту
odip буду благодарен если сможете решать!!!!
ISergey
Maniac
Эксперт С++
1373 / 884 / 52
Регистрация: 02.01.2009
Сообщений: 2,653
Записей в блоге: 1
06.09.2009, 19:47     Пять задач, включая задачу как обезвредить бомбу #15
Цитата Сообщение от Rustam Посмотреть сообщение
Столкнулся с библиотекой <conio.h> и getch(). Они между собой связаны или нет?????
функция getch() объявлена в conio.h.. но в С++ использовать их не нужно.
Rustam
12 / 12 / 3
Регистрация: 05.09.2009
Сообщений: 440
06.09.2009, 20:18  [ТС]     Пять задач, включая задачу как обезвредить бомбу #16
У меня есть задача, много думал но не смог сделать!!! Может кто-то сможет??? Заполнить квадратную матрицу последовательными целыми числами от 1 до N, расположенными по спирали, начиная с левого верхнего угла и продвигаясь по часовой стрелке, например:
Код
      1    2    3    4    5    6 
      20   21   22   23   24   7 
      19   32   33   34   25   8 
      18   31   36   35   26   9 
      17   30   29   28   27   10 
      16   15   14   13   12   11
Добавлено через 1 минуту
Простите ISergey я случайно два раза отправил!!! Извините уж!!! Я не хотел!!!
ISergey
Maniac
Эксперт С++
1373 / 884 / 52
Регистрация: 02.01.2009
Сообщений: 2,653
Записей в блоге: 1
06.09.2009, 20:19     Пять задач, включая задачу как обезвредить бомбу #17
Цитата Сообщение от Rustam Посмотреть сообщение
У меня есть задача, много думал но не смог сделать!!!!! Может кто-то сможет????? Заполнить квадратную матрицу последовательными целыми числами от 1 до N, расположенными по спирали, начиная с левого верхнего угла и продвигаясь по часовой стрелке, например:
Заполнение матрицы змейкой (по спирали)
Mozart
39 / 17 / 1
Регистрация: 21.08.2009
Сообщений: 63
07.09.2009, 16:09     Пять задач, включая задачу как обезвредить бомбу #18
4-я задачка с загогулиной, сразу в лоб не возьмешь, точнее возьмешь - но будут моменты когда ответы получатся не правильные, т.е. не довезет один или несколько телескопов
odip
Эксперт С++
7156 / 3296 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
07.09.2009, 17:02     Пять задач, включая задачу как обезвредить бомбу #19
Ответ неправильный - значит неправильно решил

Основная пляска идет вокрут массива tel2stor[]
Значение -1 в этом массиве означает, что телескоп никуда не едет.
Значение от 0 до nstor-1 обозначает, что телескоп едет к хранилищу с этим номером.
Ну и разумеется два телескопа не могу ехать к одному хранилищу.
Для этого используется массив stor_used[].

Задача 4

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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
 
 
/************************************************/
#define MAX_TEL     100
#define MAX_STOR    100
 
 
/************************************************/
typedef struct {
    double x, y;
} coord_t;
 
 
/************************************************/
char in_name[]= "METEOR.DAT";
char out_name[]= "METEOR.SOL";
 
 
/************************************************/
int calc_moving( double tmet, int ntel, coord_t *ptel,
    int nstor, coord_t *pstor, double vspeed
);
 
 
/************************************************/
int main( void ) {
 
int i, j;
int ntel, nstor, nstor_tel;
double tmet, vspeed;
FILE *fin= NULL, *fout= NULL;
coord_t tel[MAX_TEL];
coord_t stor[MAX_STOR];
 
 
fin= fopen( in_name, "rt" );
if ( fin == NULL ) {
    fprintf( stderr, "Error opening file %s\n", in_name );
    exit( 1 );
}
fscanf( fin, "%lf", &tmet );
 
fscanf( fin, "%d", &ntel );
if ( ntel<0 || ntel>MAX_TEL ) {
    fprintf( stderr, "Invalid ntel=%d\n", ntel );
    exit( 1 );
}
for ( i= 0; i<ntel; i++ ) {
    fscanf( fin, "%lf %lf", &tel[i].x, &tel[i].y );
}
 
fscanf( fin, "%d", &nstor );
if ( nstor<0 || nstor>MAX_STOR ) {
    fprintf( stderr, "Invalid nstor=%d\n", nstor );
    exit( 1 );
}
for ( j= 0; j<nstor; j++ ) {
    fscanf( fin, "%lf %lf", &stor[j].x, &stor[j].y );
}
fscanf( fin, "%lf", &vspeed );
fclose( fin );
fin= NULL;
 
nstor_tel= calc_moving( tmet, ntel, tel, nstor, stor, vspeed );
 
fout= fopen( out_name, "wt" );
if ( fout == NULL ) {
    fprintf( stderr, "Error creating file %s\n", out_name );
    exit( 1 );
}
fprintf( fout, "%d\n", nstor_tel );
fclose( fout );
fout= NULL;
 
return 0;
 
} /* main() */
 
 
/************************************************/
int calc_moving( double tmet, int ntel, coord_t *ptel,
    int nstor, coord_t *pstor, double vspeed
) {
 
int i, j;
int itel;
double dx, dy;
int max_mov_tel, count_tel;
double max_mov_dist;
 
double dist_tel_stor[MAX_TEL][MAX_STOR];
int tel2stor[MAX_TEL];
int stor_used[MAX_STOR];
 
 
/* Check */
if ( tmet<0.0 || ntel<0 || nstor<0 || vspeed<0.0 ) {
    fprintf( stderr, "calc_moving(): Invalid arguments\n" );
    exit( 2 );
}
 
/* Calc max moving distance */
max_mov_dist= tmet*vspeed;
 
/* Calc distance */
for ( i= 0; i<ntel; i++ ) {
    for ( j= 0; j<nstor; j++ ) {
        dx= ptel[i].x-pstor[j].x; dy= ptel[i].y-pstor[j].y;
        dist_tel_stor[i][j]= sqrt( dx*dx+dy*dy );
    }
}
 
/* Init */
max_mov_tel= 0;
for ( j= 0; j<nstor; j++ ) { stor_used[j]= 0; }
itel= -1;
 
/* Next itel */
label_next_itel:
itel++;
if ( itel>=ntel ) { goto label_back; }
tel2stor[itel]= -1;
 
/* Check */
label_check:
if ( tel2stor[itel]>=0 ) {
    if ( stor_used[ tel2stor[itel] ] ) { goto label_next_stor; }
    stor_used[ tel2stor[itel] ]= 1;
}
 
/* Count telescope */
count_tel= 0;
for ( i= 0; i<=itel; i++ ) {
    if ( tel2stor[i]<0 ) { continue; }
    if ( dist_tel_stor[i][tel2stor[i]]<=max_mov_dist ) { count_tel++; }
}
if ( count_tel>max_mov_tel ) { max_mov_tel= count_tel; }
goto label_next_itel;
 
/* Free */
label_free:
if ( tel2stor[itel]>=0 ) {
    stor_used[ tel2stor[itel] ]= 0;
}
 
/* Next stor */
label_next_stor:
tel2stor[itel]++;
if ( tel2stor[itel]<nstor ) { goto label_check; }
 
/* Back */
label_back:
itel--;
if ( itel>=0 ) { goto label_free; }
 
/* Return */
return max_mov_tel;
 
} /* calc_moving() */
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.09.2009, 17:44     Пять задач, включая задачу как обезвредить бомбу
Еще ссылки по теме:
как написать задачу в си C++
C++ Как дорешать задачу?
C++ Как выполнить данную задачу на с++ ?
как cделать простую задачу на С++ C++
C++ Как перевести из Pascal в C++ задачу?

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

Или воспользуйтесь поиском по форуму:
Mozart
39 / 17 / 1
Регистрация: 21.08.2009
Сообщений: 63
07.09.2009, 17:44     Пять задач, включая задачу как обезвредить бомбу #20
Угу, а каким образом решалась ситуация когда несколько телескопов претендуют на одно хранилище, при этом у некоторых из них есть доступ к другим (как определяется выбор что бы не заблокировать другие телескопы, при этом спрятать как можно больше)?
Yandex
Объявления
07.09.2009, 17:44     Пять задач, включая задачу как обезвредить бомбу
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru