3 / 4 / 0
Регистрация: 24.06.2013
Сообщений: 386
1

На основе исходного файла создать массив удвоенных нечетных чисел. Упорядочить его по возрастанию

29.06.2013, 10:01. Показов 2623. Ответов 15

Author24 — интернет-сервис помощи студентам
на основе исходного файла создать массив удвоенных нечетных чисел. Упорядочить его по возрастанию элементов входящих в файл input, вывод в output.txt
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.06.2013, 10:01
Ответы с готовыми решениями:

На основе исходного файла создать массив удвоенных нечётных чисел и упорядочить его по возрастанию элементов
Создать двоичный файл, куда записать n целых чисел. На основе исходного файла создать массив...

На основе исходного файла создать массив удвоенных нечетных чисел
Сформируйте текстовый файл, содержащий n целых чисел. На основе исходного файла создать массив...

Создать двоичный файл. На основе исходного файла создать массив удвоенных нечетных чисел
Задание. прошу помощи в доработке Создать двоичный файл, куда записать n целых чисел. На основе...

На основе целочисленного файла создать массив удвоенных нечетных чисел.
Создать типизированный файл, содержащий целые числа. На основе исходного файла целых чисел создать...

15
3451 / 2389 / 2135
Регистрация: 04.12.2011
Сообщений: 3,966
29.06.2013, 16:33 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
var
  f,g: text;
  a: array[1..1000] of integer;
  n,i,j,x: integer;
begin
  assign(f,'input.txt');
  reset(f);
  while not eof(f) do
  begin
    read(f,x);
    if odd(x) then
    begin
      inc(i);
      a[i]:=2*x;
    end;
  end;
  n:=i;
  close(f);
  for i:=2 to n do
    for j:=n downto i do
    if a[j-1]>a[j] then
    begin
      x:=a[j-1];
      a[j-1]:=a[j];
      a[j]:=x;
    end;
  assign(g,'output.txt');
  rewrite(g);
  for i:=1 to n do
    write(g,a[i]:4);
  close(g);
  writeln('Ðàáîòà ïðîãðàììû çàâåðøåíà');
  readln;
end.
1
3 / 4 / 0
Регистрация: 24.06.2013
Сообщений: 386
29.06.2013, 20:30  [ТС] 3
А можно пожалуйста с пояснениями, я многие вещи не понял...например почему n:=i? И не совсем понимаю вот эту запись
for i:=2 to n do почему от двух?
for j:=n downto i do а это вообще для чего?
0
3451 / 2389 / 2135
Регистрация: 04.12.2011
Сообщений: 3,966
29.06.2013, 20:43 4
Цитата Сообщение от Jessy James Посмотреть сообщение
почему n:=i?
поясню на коде:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
 while not eof(f) do // пока не достигли конца файла
  begin
    read(f,x);       // читаем очередную компоненту файла (присваиваеме переменной х значение компоненты)
    if odd(x) then   // если число нечетное, то..
    begin
      inc(i);        // увеличиваем счетчик
      a[i]:=2*x;     // очередному элементу массива присваиваем удвоенное значение числа х
    end;
  end;
          // в данный момент i равно размеру массива           
  n:=i;   // числу n присваиваем значение размера массива,
          // это понадобиться нам для сортировки массива
Цитата Сообщение от Jessy James Посмотреть сообщение
for i:=2 to n do почему от двух?
for j:=n downto i do а это вообще для чего?
от двух - потому что мы сравниваем i-й элемент и предыдущий, если возьмем единицу, то будем сравнивать первый и предыдущий, то есть выйдем за границы массива. Это это обычная "пузырьковая" сортировка (одна из интерпретаций), в инете масса информации по этому методу.
1
3 / 4 / 0
Регистрация: 24.06.2013
Сообщений: 386
16.08.2013, 19:04  [ТС] 5
Программа не работает. А в какой папке мне создать файлы f и g?
0
Почетный модератор
64299 / 47594 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
16.08.2013, 19:13 6
Цитата Сообщение от Jessy James Посмотреть сообщение
А в какой папке мне создать файлы f и g?
В папке с программой.

Добавлено через 1 минуту
Файл g создавать не нужно, его программа создаст.
1
3 / 4 / 0
Регистрация: 24.06.2013
Сообщений: 386
16.08.2013, 19:29  [ТС] 7
»*Ошибка ввода/вывода 2: Не удается найти указанный файл (Program1.pas, строка 7)
Всё равно не работает.
0
Почетный модератор
64299 / 47594 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
16.08.2013, 19:33 8
Pascal
1
2
3
4
begin
  assign(f,'input.txt');//если файл в папке с программой(например оба на рабочем столе)
//и файл называется именно так (input), то файл
  reset(f);//откроется
1
Почетный модератор
64299 / 47594 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
16.08.2013, 19:38 9
Вот запусти в папке
Вложения
Тип файла: rar Новая папка.rar (557 байт, 11 просмотров)
1
3 / 4 / 0
Регистрация: 24.06.2013
Сообщений: 386
16.08.2013, 19:39  [ТС] 10
Появился второй файл output, но он почему то пустой.
0
Puporev
16.08.2013, 19:40
  #11

Не по теме:

Цитата Сообщение от Jessy James Посмотреть сообщение
но он почему то пустой.
Какая голова, такой и файл...

1
3 / 4 / 0
Регистрация: 24.06.2013
Сообщений: 386
16.08.2013, 19:49  [ТС] 12
Так файл же должен заполниться нечётными числами умноженными на 2 от 1 до 1000, и отсортироваться по возрастанию... Что не так???
0
Почетный модератор
64299 / 47594 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
16.08.2013, 19:53 13
Ну посмотри в папке что получается. Не знаю что должно быть в файле, но он не пустой.
Вложения
Тип файла: rar Новая папка_1.rar (1.2 Кб, 11 просмотров)
1
3451 / 2389 / 2135
Регистрация: 04.12.2011
Сообщений: 3,966
16.08.2013, 21:28 14
Цитата Сообщение от Jessy James Посмотреть сообщение
файл же должен заполниться нечётными числами умноженными на 2 от 1 до 1000
Не совсем так. Тысяча - это (в программе) максимально возможный размер массива.
В файле output должны быть нечетные числа из файла input, удвоенные и упорядоченные по возрастанию.
В прилагающемся файле таких чисел пять. Создайте свой файл, если нужно.
Миниатюры
На основе исходного файла создать массив удвоенных нечетных чисел. Упорядочить его по возрастанию  
1
1642 / 1091 / 487
Регистрация: 17.07.2012
Сообщений: 5,345
16.08.2013, 22:48 15
Puporev, вопрос у меня довольно глупый:если файла не существует,а его вызывают для перезаписи(rewrite(f)),файл создастся?
1
3030 / 1916 / 1649
Регистрация: 30.04.2011
Сообщений: 3,060
16.08.2013, 22:59 16
Новичок, да, создастся. А если существует, то он удаляется и создается новый пустой файл с тем же именем.
2
16.08.2013, 22:59
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.08.2013, 22:59
Помогаю со студенческими работами здесь

Дано число. Создать массив. Упорядочить его элементы по возрастанию
Дано шестизначное натуральное число. Создать массив состоящий из цифр этого числа. Упорядочить его...

Создать одномерный массив и упорядочить его методом Шелла по возрастанию
создать одномерный массив и упорядочить первую его половину методом Шелла по возрастанию

Получить из исходного массив положительных чисел и отсортировать его по возрастанию методом пузырька
2. Дан массив N целых чисел. Получить из него массив положительных чисел и отсортировать его по...

Вывод удвоенных нечетных чисел из файла
Задание "Дан файл f,компоненты которого являются целыми числами. Найти количество удвоенных...


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

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

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