5 / 5 / 3
Регистрация: 28.02.2010
Сообщений: 166
1

Задан текстовый файл который содержит последовательность целых чисел.Упорядочить элементы которые имеют остаток L при делении числа на K.

04.01.2011, 17:44. Показов 1370. Ответов 1
Метки нет (Все метки)

Задан текстовый файл который содержит последовательность целых чисел.Упорядочить за возрастанием те элементы этой последовательности которые имеют остаток L при делении числа на K.

Как я понял, нужно сначала найти все числа которые удовлетворяют условие, вывести их в файл и потом отсортировать пузырьком. Написал просо нахождение всех этих чисел без сортировки, но почему-то не работает.Не могу найти ошибку.
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
var
  inp, oup: text;
  m: array [1..20] of byte;
  k, n, l, i: integer;
 
begin
  writeln('Insert K');
  readln(k);
  writeln('Insert L');
  readln(l);
  assign(inp, 'input.txt');
  reset(inp);
  for i := 1 to n do
  begin
    read(inp, m[i]);
  end;
  assign(oup, 'output.txt');
  rewrite(oup);
  for i := 1 to n do
    if m[i] mod k = l
      then
      write(oup, m[i]);
      readln;
      close(inp);
      close(oup);
end.
Добавлено через 33 минуты
Забыл дописать
Pascal
1
readln(n);
Теперь все заработало

Добавлено через 44 минуты
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
39
40
41
42
43
44
45
46
47
48
49
50
51
var
  inp, oup: text;
  m: array [1..20] of word;
  k, n, l, i: integer;
 
procedure Swap(var a, b: word);
var
  t: word;
begin
  t := a;
  a := b;
  b := t;
end;
 
 
begin
  writeln('Insert K');
  readln(k);
  writeln('Insert L');
  readln(l);
  writeln('Insert N');
  readln(n);
  assign(inp, 'input.txt');
  reset(inp);
  for i := 1 to n do
  begin
    read(inp, m[i]);
  end;
  assign(oup, 'output.txt');
  rewrite(oup);
  for i := 1 to n do
    if m[i] mod k = l
      then
    begin
      writeln(oup, m[i]);
    end;
  close(oup);
  assign(oup, 'output.txt');
  reset(oup);
  for i := 1 to n do
  begin
    readln(oup, m[i]);
  end;
  for i := 1 to n do 
    if m[i] > m[i + 1] then
      swap(m[i], m[i + 1]);
  
  
  close(inp);
  close(oup);
end.
Вот дописал сортировку, но как назло выдает что-то о неверном формате входной строки.Что здесь не так?

Добавлено через 2 часа 49 минут
Если кому-то понадобиться полностью написанная задача, то вот она.
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
39
40
41
42
var
  inp: text;
  sol, m: array [1..100] of integer;
  k, n, l, i, j, top: integer;
 
procedure Swap(var a, b: integer);
var
  t: integer;
begin
  t := a;
  a := b;
  b := t;
end;
 
 
begin
top := 0;
  writeln('Insert K');
  readln(k);
  writeln('Insert L');
  readln(l);
  writeln('Insert N');
  readln(n);
  assign(inp, 'input.txt');
  reset(inp);
  for i := 1 to n do
  begin
    read(inp,m[i]);
    if (m[i] mod k = l) then
    begin
      inc(top);
      sol[top] := m[i];
    end;
  end;
  for i := top downto 2 do
    for j := 1 to i - 1 do
      if sol[j] > sol[j + 1] then swap(sol[j], sol[j + 1]);
  for i := 1 to top do
    writeln(sol[i]);
  
  close(inp);
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.01.2011, 17:44
Ответы с готовыми решениями:

Вложенный цикл. Найти трехзначные числа, которые при делении на 2 дают остаток 1, при делении на 3 остаток 2, при делении на 4 остаток 3
НАЙТИ С ПОМОЩЬЮ ВЛОЖЕННОГО ЦИКЛА))) найти асе трехзначные числа, которые при делении на 2 дают...

ПУСТЬ это текстовый файл, который содержит НЕСКОЛЬКО ЦЕЛЫХ ЧИСЕЛ. ОТКРЫТЬ этот текстовый файл и КАЖДЫЙ С ЧИСЕЛ вознести В КУБ.
ПУСТЬ это текстовый файл, который содержит НЕСКОЛЬКО ЦЕЛЫХ ЧИСЕЛ. ОТКРЫТЬ этот текстовый файл и...

Пусть имеется текстовый файл, который содержит несколько целых чисел. Открыть этот текстовый файл и каждое из чисел вознести в квадрат.
Пусть имеется текстовый файл, который содержит несколько целых чисел. Открыть этот текстовый файл и...

Найти все трехзначные числа, которые при делении на 2 дают остаток 1 и при делении на 3 остаток 2
Снова прощу о помощи . Работа в цикле. 1.Программа просит ввести любое число от 0 до 60 после...

1
12 / 12 / 8
Регистрация: 19.10.2010
Сообщений: 237
04.01.2011, 17:50 2
напиши сначала без файла, может там где нить ошибка, так и легче как мне кажется, потом уже к законченной проге добавишь файлы
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.01.2011, 17:50
Помогаю со студенческими работами здесь

В диапазоне чисел найти числа, которые при делении на 7 дают остаток 1, 2 или 5
Даны натуральные числа от А до В. Найти и напечатать те из них, которые при делении на 7 дают...

Создать текстовый файл, который содержит 1000 случайных целых чисел
Создать текстовый файл, который содержит 1000 случайных целых чисел. Числа в файле должны быть...

Дан текстовый файл с изображениями целых чисел. В выходной файл поместить те из них, которые имеют четные млад
Дан текстовый файл с изображениями целых чисел. В выходной файл поместить те из них, которые имеют...

Текстовый файл содержит несколько целых чисел, выбросить из записи числа цифры 0 и 2
Помогите сделать задание! первая часть уже сделана, исходя из нее, надо сделать дальше! ЗАДАНИЕ...

Найти все числа, которые при делении на a дают остаток b, а при делении на b дают в остатке a
Ввести два натуральных числа a и b, на промежутке от 1 до N найти все числа, которые при делении на...

Дан одномерный массив, который содержит не более 50 целых чисел. Найти и вывести те элементы, которые больше предыдущего.
Дан одномерный массив, который содержит не более 50 целых чисел. Найти и вывести те элементы,...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru