как вот это прочитать правильно с файла вот первые две цывры могу прочитать первая цыфра идет для того чтобы узнать сколько в строчке будет цыфр врорая для того чтобы длину определить на следущий строчке идет первые три цыфры которые надо сравнивать с остальными как мне это все хорошо прочитать все цыфры 3 6 7 4 4 1 8 2 5 5 5 3 2 1 7 4 5 1 1 7 6 3 2
Айра
27.10.2008 18:48
Покажи как читаешь то..
maksimla
27.10.2008 18:52
program staciakampis; var n,b,i,c,a,d,z: integer;
pradDuom, rezult: text; begin assign (pradDuom, 'duom.TXT'); assign (rezult, 'rez.TXT'); reset (pradDuom); rewrite (rezult); read (pradDuom, n,c); b:=0 ; read(pradduom,b,d,z); writeln(b,' ',d,' ',z); for i := 1 to c*n do begin read (pradDuom, a); write(a,' '); end; Readln; end.
samec
27.10.2008 19:35
А чего не нравится то? Вроде всё и читаешь, только вот файлы в конце программы надо закрывать:
close(pradDuom); close(rezult);
ну и если вывод цифр тебе нужен так же как они в файле расположены, то можно цикл чтения цифр вот так подделать:
for j := 1 to c do begin for i := 1 to n do begin read (pradDuom,a); write(a,' '); end; writeln; end;
только нужно переменную-счетчик цикла "j" объявить в разделе объявления переменных. А зачем ты делаешь:
b:=0;
??
maksimla
27.10.2008 19:40
а это там b:=0; до другого случая забыл убрать вот как ты сказал так и написал кажется так но выбивает плахой формат цифр
program staciakampis; var n,b,i,c,a,d,z: integer;
pradDuom, rezult: text; begin assign (pradDuom, 'duom.TXT'); assign (rezult, 'rez.TXT'); reset (pradDuom); rewrite (rezult); read (pradDuom, n,c); for i := 1 to c do begin for i := 1 to n do begin read (pradDuom,a); write(a,' '); end; writeln; end; close(pradDuom); close(rezult); readln; end.
samec
27.10.2008 19:43
Внимательнее прочти мой предыдущий пост.
maksimla
27.10.2008 23:12
program staciakampis; type mas= array [1..100] of integer; var n,i,c,j: integer; pradDuom,rezult: text; a,b:mas; procedure sort( var m:mas; s:integer); var k:integer; begin for i:= 1 to s - 1 do for j:= i+1 to s do if a[i]> a[j] then begin k:=m[i]; m[i]:=m[j]; m[j]:=k; end; end;
begin assign (pradDuom, 'duom.TXT'); assign (rezult, 'rez.TXT'); reset (pradDuom); rewrite (rezult); read (pradDuom, n,c); {for i:=1 to n do begin read(pradduom,b[i]); if i = 3 then begin sort(b,n); for i:=1 to n do writeln(b[i]); end; end; }
for j := 1 to c do begin for i := 1 to n do begin read (pradDuom,a[i] ); if i=3 then begin sort(a,n); for i:=1 to n do writeln(a[i]); end; end; writeln; end; close(pradDuom); close(rezult); Readln;
end.
в чем ошибка у меня тут если тут мне нужно распредилить цифры по возвростания
samec
28.10.2008 2:19
for j := 1 to c do begin for i := 1 to n do {<-- вот тут счетчик цикла - i} begin read (pradDuom,a[i] ); if i=3 then begin sort(a,n); for i:=1 to n do {<-- и здесь во вложенном цикле тоже используешь счетчик i - так делать не надо } writeln(a[i]); end; end; writeln; end;
с твоим кодом сортироваться у тебя будут вссегда только числа из первой считанной строки чисел, а на экран выводиться только последнее число из каждой строки чисел. Как то это всё неправильно. Предлагаю тебе вместо одномерного массива, воспользоваться двумерным массивом. Сначала считай в него из файла все числа, а затем сортируй их как хочешь примерно так:
for j := 1 to c do begin for i := 1 to n do begin read (pradDuom,a[j,i] ); writeln(a[j,i]); end; writeln; end; sort(a,c,n);
процедуру сортировки и описание типа "mas" видоизмени сам.
maksimla
31.10.2008 18:44
получилось там чют чють но я признаюсь что у меня небыло двоичного массива некогда
program staciakampis; type mas= array [1..100,1..100] of integer; var n,i,c,j,z,k: integer; pradDuom,rezult: text; a:mas; begin assign (pradDuom, 'duom.TXT'); assign (rezult, 'rez.TXT'); reset (pradDuom); rewrite (rezult); read (pradDuom, n,c); c:=c+1 ; for j := 1 to c do begin for i := 1 to n do begin read (pradDuom,a[j,i] ); end; end; for j:=1 to c do for i:= 1 to n do for z:=i+1 to n do if a[j,i]>a[j,z] then begin k:=a[j,i]; a[j,i]:=a[j,z]; a[j,z]:=k; {writeln(a[j,i]:9); writeln(a[j,z]); } end; for j:=1 to c do for i:=1 to n do writeln(a[j,i]); close(pradDuom); close(rezult); Readln; end.
maksimla
31.10.2008 23:40
вот написал но ошибка есть неправильно выводит пока что на экран цифры должно выводит только те цифры которые меньши и равны этим цифрам 4,4,7 и если в массиве втором цифры 1,2,8 то они не должны выводится
program staciakampis; type mas = array [1..100,1..100] of integer; var n,i,c,j,z,k,d,m: integer; pradDuom,rezult: text; a:mas; begin assign (pradDuom, 'duom.TXT'); assign (rezult, 'rez.TXT'); reset (pradDuom); rewrite (rezult); read (pradDuom, n,c); c:=c+1 ; for j := 1 to c do begin for i := 1 to n do begin read (pradDuom,a[j,i] ); end; end; for j:=1 to c do for i:= 1 to n do for z:=i+1 to n do if a[j,i]>a[j,z] then begin k:=a[j,i]; a[j,i]:=a[j,z]; a[j,z]:=k; {writeln(a[j,i]:9); writeln(a[j,z]); } end; d:=0; m:=0; for j:=2 to c do for i:=1 to n do { ****************** ошибка в if***********} if a[1,i] >= a[j,i] then
вот так тут три первых цифры это куб а все другие числа кубы и должно так идти в первый куб вместится второй куб или другие в первый куб и их вот можно поворачивать кубы
maksimla
2.11.2008 19:29
условия такие первая цифра это длина страки ну сколько цифр будет второе число это сколько столбцов будет потом первые три цифры это куба цифры остольные цифры это кубы тоже. В первый куб вместится все остальные кубы и их можно по разному переворачивать. 3 6 7 4 4 1 8 2 5 5 5 3 2 1 7 4 5 1 1 7 6 3 2 сперва я их всех записал в двойной массив потом упорядочил по возрастанию так 4 4 7 1 2 8 5 5 5 1 2 3 4 5 7 1 1 7 2 3 6 потом вот сравнивать неполучается так 4>=1 4>=2 7>=8 и если хоть одна цифра больше то этот ненадо писать массив 4>=5 4>=5 7>=5 и этот тоже самое 4>=1 4>=2 7>=8 а вот этот уже надо написать потомучто все правильно а у меня выводит так 4>=1 4>=2 7>=5 4>=1 4>=2 7>=3 вот неправильно выводит
Lapp
3.11.2008 8:48
maksimla, не в обиду тебе будь сказано, я просто не понимаю, что ты пишешь. Я честно пытался понять условие, но так и не понял. Извини, но твой уровень владения русским языком представляет большую проблему. Я не упрекаю, я просто констатирую факт. Что там у тебя за "куба" такие, что тебе с ними нужно делать - я так и не врубился. Извиняй.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.