Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
2 / 2 / 4
Регистрация: 10.11.2013
Сообщений: 140
1

Найти количество наборов, элементы которых возрастают

29.09.2014, 21:38. Показов 1574. Ответов 15

Author24 — интернет-сервис помощи студентам
всем привет, подскажите пожалуйста почему выводиться ноль в выходном файле?
Без файла:
Pascal
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
{Дано целое число K, а также K наборов ненулевых целых чисел.
Каждый набор содержит не менее двух элементов, признаком его завершения
является число 0. Найти количество наборов, элементы которых возрастают.}
Program Zadanie_2;
const n=100;
var
  K:integer;
  sum,sum_all:integer;
  A:integer;
  i:integer;
  Buff:integer;
  bool:boolean;
Begin
  write('Введите K (не менее двух элементов): '); readln(K);
  sum_all:=0;
  for i:=1 to K do
begin
  sum:=0;
  Buff:=0;
  bool:=true;
repeat
  A:=random(9);
  sum:=sum+1;
if(A<>0)then
if(Buff>A)then bool:=false
else Buff:=A;
until (a = 0)and(sum>2);
if(bool)then
begin
  sum_all:=sum_all+1;
end;
end;
  writeln('Всего наборов возрастающих: ',sum_all);
End.
С файлом:
Pascal
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
Program Zadanie_2;
const n=100;
var
  K:integer;
  sum,sum_all:integer;
  A:integer;
  i:integer;
  Buff:integer;
  bool:boolean;
  f_in,f_out:text;
Begin
  assign(f_in,'Zadanie_2.in');
  reset(f_in);
  read(f_in);
  assign(f_out,'Zadanie_2.out');
  rewrite(f_out);
  sum_all:=0;
  for i:=1 to K do
begin
  sum:=0;
  Buff:=0;
  bool:=true;
if(A<>0)then
if(Buff>A)then bool:=false
else Buff:=A;
if(bool)then
begin
  sum_all:=sum_all+1;
end;
end;
writeln(f_out,k);
  close(f_in);
  close(f_out);
End.
Вложения
Тип файла: rar ggg.rar (126 байт, 4 просмотров)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.09.2014, 21:38
Ответы с готовыми решениями:

Найти количество наборов массива, элементы которых возрастают
Здравствуйте люди добрые, Вот и у меня настала практика по Pascal, 45 задачи я решил из 54, на...

Найти количество участков, на которых элементы массива монотонно возрастают
Дано массив размером N. Найти количество участков, на которых его элементы монотонно возрастают....

В массиве определить количество участков, на которых его элементы монотонно возрастают.
Дан массив размера N. Определить количество участков, на которых его элементы монотонно возрастают.

Дана матрица размера 5х10. Вывести количество столбцов, элементы которых возрастают
Дана матрица размера 5х10. Вывести количество столбцов, элементы которых возрастают.

15
138 / 101 / 102
Регистрация: 03.02.2014
Сообщений: 427
30.09.2014, 05:40 2
Чуть поправил.
Pascal
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
Program Zadanie_2;
var
  K:integer;
  sum,sum_all:integer;
  A:integer;
  i:integer;
  Buff:integer;
  bool:boolean;
  f_in,f_out:text;
Begin
  assign(f_in,'Zadanie_2.in');
  reset(f_in);
  read(f_in);
  sum_all:=0;
  readln(f_in,K);
  for i:=1 to K do
  begin
    sum:=0;
    Buff:=0;
    bool:=true;
    repeat
      readln(f_in,A);
      sum:=sum+1;
      if(A<>0)then
        if(Buff>A)then bool:=false
        else Buff:=A;
    until (a = 0)and(sum>2);
    if(bool)then
    begin
      sum_all:=sum_all+1;
    end;
  end;
  close(f_in);
  assign(f_out,'Zadanie_2.out');
  rewrite(f_out);
  writeln(f_out,sum_all);
  close(f_out);
End.
0
2 / 2 / 4
Регистрация: 10.11.2013
Сообщений: 140
30.09.2014, 07:29  [ТС] 3
почему то у меня выводиться в выходном файле, тоже число что и во входном, не знаю почему...
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
30.09.2014, 16:54 4
Потому что и входной файл тупой и сама программа.
0
2 / 2 / 4
Регистрация: 10.11.2013
Сообщений: 140
30.09.2014, 17:04  [ТС] 5
всмысле мне нужно переделывать код самой программы?
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
30.09.2014, 17:06 6
И код и входной файл. Ты хоть внимательно прочитай условие задачи.
0
138 / 101 / 102
Регистрация: 03.02.2014
Сообщений: 427
30.09.2014, 17:22 7
IsoPanzer,
https://www.cyberforum.ru/pasc... 65227.html твоя тема?
Чтобы исправить недочеты попробуй описать каким должен быть формат файла Zadanie_2.in.
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
30.09.2014, 17:24 8
Лучший ответ Сообщение было отмечено IsoPanzer как решение

Решение

Пример входного файла
6
13 54 34 45 0
1 2 3 0
10 15 25 0
4 8 9 2 0
5 7 9 11 0
7 9 12 25 30 0
Pascal
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
{Дано целое число K, а также K наборов ненулевых целых чисел.
Каждый набор содержит не менее двух элементов, признаком его завершения
является число 0. Найти количество наборов, элементы которых возрастают.}
Program Zzz;
var
  k,sum,a,b,i:integer;
  bool:boolean;
  f_in,f_out:text;
Begin
  assign(f_in,'Zadanie_2.in');
  reset(f_in);
  read(f_in,k);
  sum:=0;
  for i:=1 to K do
   begin
    read(f_in,a);
    bool:=true;
    while a<>0 do
     begin
      read(f_in,b);
      if (b<>0)and(b<a) then bool:=false;
      a:=b;
     end;
    if bool then inc(sum);
   end;
  close(f_in);
  assign(f_out,'Zadanie_2.out');
  rewrite(f_out);
  writeln(f_out,sum);
  close(f_out);
End.
1
138 / 101 / 102
Регистрация: 03.02.2014
Сообщений: 427
30.09.2014, 17:32 9
Лучший ответ Сообщение было отмечено IsoPanzer как решение

Решение

По моему формат файла Zadanie_2.in:
Код
5 - количество наборов
2 - начало первого набора
3
0 - первый набор закончился
3 - начало второго набора
2
5
0 - второй набор закончился
5 - начало третьего набора
8
9
0 - третий набор закончился
7 - начало четвертого набора
8
9
0 - четвертый набор закончился
6 - начало пятого набора
5
4
3
2
0 - пятый набор закончился
Каждое число начинается с новой строки. Если у тебя свой формат файла, так и пиши в следующий раз в теме про файлы.
1
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
30.09.2014, 18:33 10
Цитата Сообщение от Антон1985 Посмотреть сообщение
Каждое число начинается с новой строки.
А какая разница как записать числа в файле? Лишь бы кроме чисел и пробелов не было других символов.

Добавлено через 47 секунд
Почитайте о процедуре read при чтении числовых данных из текстовых файлов.
0
138 / 101 / 102
Регистрация: 03.02.2014
Сообщений: 427
30.09.2014, 18:41 11
Цитата Сообщение от Puporev Посмотреть сообщение
А какая разница как записать числа в файле?
Маленькая разница - разница в операторе считывании: read и readln. А вообще я описывал формат файла (в посте #7) для программы описанном в посте #1.
0
2 / 2 / 4
Регистрация: 10.11.2013
Сообщений: 140
30.09.2014, 18:41  [ТС] 12
все получилось, спасибо вам!)
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
30.09.2014, 18:43 13
Цитата Сообщение от Антон1985 Посмотреть сообщение
разница в операторе считывании: read и readln.
Так нахрена readln если читаем только числа.
0
138 / 101 / 102
Регистрация: 03.02.2014
Сообщений: 427
30.09.2014, 18:47 14
Цитата Сообщение от Puporev Посмотреть сообщение
Так нахрена readln если читаем только числа.
Оператор readln тоже очень хорошо читает числа в текстовом файле.
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
30.09.2014, 18:50 15
Конечно, если знаем что в каждой строке по 1 числу, а если нет?
0
138 / 101 / 102
Регистрация: 03.02.2014
Сообщений: 427
30.09.2014, 18:58 16
А если нет, то для этого написал в посте #7, правило, каждое число в новой строке. Хотя формат, описанный в посте #7, может прочитать программа, описанная в посте #6. Таков оператор read.
0
30.09.2014, 18:58
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.09.2014, 18:58
Помогаю со студенческими работами здесь

Найти количество участков, на которых элементы массива монотонно возрастают
8 Дан массив размера N. Найти количество участков, на которых его элементы монотонно возрастают. ...

Вывести количество столбцов, элементы которых монотонно возрастают
Дана матрица размера 5 x 10. Вывести количество столбцов, элементы которых монотонно возрастают

Определить количество участков массива, на которых его элементы монотонно возрастают
Дан массив размера N. Определить количество участков, на которых его элементы монотонно возрастают...

Найти количество наборов, элементы которых возрастают
Дано целое число K, а также K наборов ненулевых целых чисел. Каждый набор содержит не менее двух...


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

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