X-tender Опубликовано 18 апреля, 2009 Жалоба Поделиться Опубликовано 18 апреля, 2009 PapiruSВо-первых, зачем? А во-вторых, что тяжело код из функции перенести в основной? Ссылка на комментарий
PapiruS Опубликовано 18 апреля, 2009 Жалоба Поделиться Опубликовано 18 апреля, 2009 X-tenderпросто мне нужна блок-схема, а функцию не надо тут испоьзовать Ссылка на комментарий
X-tender Опубликовано 18 апреля, 2009 Жалоба Поделиться Опубликовано 18 апреля, 2009 PapiruS, ну перенеси код из функции в основной код и все... Ссылка на комментарий
PapiruS Опубликовано 19 апреля, 2009 Жалоба Поделиться Опубликовано 19 апреля, 2009 PapiruSчто-то типа того(синтаксис паскаля не очень помню):function dec_cnt(t:integer):integer;var i:integer;begin i=1; while (t>=10) do begin t:=t div 10; inc(i); end result:=i;end;function n_dec(t,i:integer):integer;var j:integer;begin j=dec_cnt(t)+1-i; while (j>=0) begin t:=t div 10; dec(j); end;result:=t mod 10;end;var i,k:integer;beginreadln(k);i=1;while (k>dec_cnt(i)) dobegin k:=k-dec_cnt(i); inc(i);end;writeln("Result = ",n_dec(i,k));ps. Написал для теста на перле и попытался перевести в паскаль, сорри если что-то не так. на перле:use strict;sub dec_cnt{ my $t=shift; my $i=1; while ($t>=10) { $t/=10; $i++; } return $i;}sub n_dec{ my $t=shift; my $i=shift; my $j=dec_cnt($t)+1-$i; while (--$j) { $t/=10;} return $t%10;}my $k=<>;my $i=1;while ($k>dec_cnt($i)){$k-=dec_cnt($i);$i++;}print "Result=".n_dec($i,$k);чета я набрал и нето он маленько находит:ввожу 4 выдает 21187 Ссылка на комментарий
X-tender Опубликовано 19 апреля, 2009 Жалоба Поделиться Опубликовано 19 апреля, 2009 PapiruSпокажи что набрал-то Ссылка на комментарий
PapiruS Опубликовано 20 апреля, 2009 Жалоба Поделиться Опубликовано 20 апреля, 2009 X-tender4Result = 21188 Ссылка на комментарий
X-tender Опубликовано 20 апреля, 2009 Жалоба Поделиться Опубликовано 20 апреля, 2009 PapiruS, я код просил, а не вывод.Вот абсолютно рабочий код:function dec_cnt(t:integer):integer;var i:integer;begin i:=1; while (t>=10) do begin t:=t div 10; inc(i); end; result:=i;end;function n_dec(t,i:integer):integer;var j:integer;begin j:=dec_cnt(t)+1-i; while (j>1) do begin t:=t div 10; dec(j); end;result:=t mod 10;end;var i,k:integer;beginreadln(k);i:=1;while (k>dec_cnt(i)) dobegin k:=k-dec_cnt(i); inc(i);end;writeln('Result = ',n_dec(i,k));end. Ссылка на комментарий
PapiruS Опубликовано 20 апреля, 2009 Жалоба Поделиться Опубликовано 20 апреля, 2009 PapiruS, я код просил, а не вывод.Вот абсолютно рабочий код:function dec_cnt(t:integer):integer;var i:integer;begin i:=1; while (t>=10) do begin t:=t div 10; inc(i); end; result:=i;end;function n_dec(t,i:integer):integer;var j:integer;begin j:=dec_cnt(t)+1-i; while (j>1) do begin t:=t div 10; dec(j); end;result:=t mod 10;end;var i,k:integer;beginreadln(k);i:=1;while (k>dec_cnt(i)) dobegin k:=k-dec_cnt(i); inc(i);end;writeln('Result = ',n_dec(i,k));end.ты здесь result не объявил)вот исправил но не работаетfunction dec_cnt(t:integer):integer;var i,result:integer; begin i:=1; while (t>=10) do begin t:=t div 10; inc(i); end; result:=i;end;function n_dec(t,i:integer):integer;var j,result:integer; begin j:=dec_cnt(t)+1-i; while (j>1) do begin t:=t div 10; dec(j); end;result:=t mod 10;end;var i,k:integer;beginreadln(k);i:=1;while (k>dec_cnt(i)) dobegin k:=k-dec_cnt(i); inc(i);end;writeln('Result = ',n_dec(i,k));end. Ссылка на комментарий
X-tender Опубликовано 21 апреля, 2009 Жалоба Поделиться Опубликовано 21 апреля, 2009 PapiruS, у тебя турбопаскаль видимо. в дельфи result - это возвращаемое значение функцией. если так то замени result:= на название_функции:=. Вообще немного то хоть включай мозг. Ссылка на комментарий
Vol89 Опубликовано 21 апреля, 2009 Жалоба Поделиться Опубликовано 21 апреля, 2009 Помогите составить прогу которая бы:Дан двумерный массив А[5;6], найти максимальный элемент массива, если таких элементов несколько, то выдать на экран местоположеие всех максимальных элементов.Номер строки и столбца матрицы =- или -= номер в строке.На основании этого кода: (хотя я его не правильно срисовал, поправлю).var a:array[1..4,1..5] of integer; i,j:integer;min; ns,nst:integer;beginfor i:=1 to 4 dofor i:=1 to 5 do read(a[i,j]);min:=a[1,1]; ns:=1; nst:=1;for i:=1 to 4 dofor i:=1 to 5 do if a[i,j]begin min:=a[i,j]; ns:=i; nst:=j;end;writeln('min=',min,'Stroka-',ns,'Stolbech-',nst);end. Ссылка на комментарий
X-tender Опубликовано 21 апреля, 2009 Жалоба Поделиться Опубликовано 21 апреля, 2009 Vol89const m=5;n=6;var a:array[1..m,1..n] of integer;i,j,max:integer;beginmax:=-32565;for i:=1 to m do for i:=1 to n do begin read(a[i,j]); if (maxwriteln('max=',max,':');for i:=1 to m do for i:=1 to n do if (a[i,j]=max) then writeln(i,':',j);end. Ссылка на комментарий
Vol89 Опубликовано 21 апреля, 2009 Жалоба Поделиться Опубликовано 21 апреля, 2009 X-tenderconst m=5;n=6;var a:array[1..5,1..6] of integer;i,j,max:integer;beginmax:=-32565;for i:=1 to 5 dofor j:=1 to 6 do begin read(a[i,j]); if (maxwriteln('max=',max,':');for i:=1 to m dofor j:=1 to n do if (a[i,j]=max) then writeln('Stroka=',i,', ','Stolbech-',j);end. Ссылка на комментарий
X-tender Опубликовано 22 апреля, 2009 Жалоба Поделиться Опубликовано 22 апреля, 2009 Vol89все конечно хорошо только зачем по твоему я const m=5;n=6; вставлял? Ссылка на комментарий
Vol89 Опубликовано 22 апреля, 2009 Жалоба Поделиться Опубликовано 22 апреля, 2009 Предположение, чтобы:Автоматически строить таблицу? или для обнаружения требуемого числа. Ссылка на комментарий
X-tender Опубликовано 22 апреля, 2009 Жалоба Поделиться Опубликовано 22 апреля, 2009 Vol89, эхъ... чтобы, если вдруг тебе понадобится изменить размеры массива, не менять везде 5 и 6 на новые размеры, а просто изменить эти константы... Ссылка на комментарий
Vol89 Опубликовано 22 апреля, 2009 Жалоба Поделиться Опубликовано 22 апреля, 2009 Оооо... Спасиб.А мне чего же, сегодня сказал декан. Что значение max:=-32565, не до конца, вообщем, он сказал, что: - Я могу такие данные ввести с которыми твоя программа не справиться, из-за этой строки. Ссылка на комментарий
X-tender Опубликовано 22 апреля, 2009 Жалоба Поделиться Опубликовано 22 апреля, 2009 Vol89, посмотри размерность integer и введи его минимальное значение вместо -32656. (вообще что-то я ошибся хотел по идее -32768 указать, т.к. там он кажется 16битный) Ссылка на комментарий
Vol89 Опубликовано 22 апреля, 2009 Жалоба Поделиться Опубликовано 22 апреля, 2009 Спасибо за ваши знания.var s,s1,s2:string; i:byte;begin writeln('Введите строку'); readln(s); s1:='Путин'; s2:='Медведев'; while pos('Путин',s)>0 do begin i:=pos(s1,s); delete(s,i,5); insert(s2,s,i); end; writeln(s);end.А лозунг такой дал:Путин жил, Путин жив, Путин будет жить. Теперь другая задача стоит.type stud=recordFIO,addres:string[30];G_r,group:longint; Pol:char;Phone:string[12];end;var st:stud; a:array[1..3] of stud;i:integer;Begin for i:=1 to 3 do Beginwriteln('Введите ФИО'); readln(a.FIO);writeln('Введите Адрес');readln(a.addres);writeln('Введите пол');readln(a.Pol);writeln('Введите телефон');readln(a.Phone);writeln('Введите год рождения, группу'); readln(a.G_r, a.group);end;writeln('Список студентов в ВУC');for i:=1 to 3 doif (a.Pol='м') and (2009-a.G_r<27) thenwriteln(a.FIO:20,a.Addres:20,a.Phone:12);End.Дана строка символов, является ли она палиндромом, пример:аргентина манит негра - что с права на лево, что лево-на право, одно и тоже.Буква А - уже и есть палиндром.На тему записи:Данные о трёх студентах, выдать на экран, студентов женского рода старше 30-и лет.Хотя я думаю можно и 5-х записать. Ссылка на комментарий
Baimer Опубликовано 22 апреля, 2009 Жалоба Поделиться Опубликовано 22 апреля, 2009 дана строка символов, является ли она палиндромом, пример:аргентина манит негра - что с права на лево, что лево-на право, одно и тоже.Буква А - уже и есть палиндромprogram palindrom;var a:string; i,b:integer;beginb:=1;readln(a);for i:=1 to length(a) do if a[i]<>a[length(a) - i +1] then b:=0;if b=0 then writeln ('net')else writeln ('da');end. Ссылка на комментарий
Vol89 Опубликовано 22 апреля, 2009 Жалоба Поделиться Опубликовано 22 апреля, 2009 BaimerО большое спасибо. Ссылка на комментарий
Baimer Опубликовано 22 апреля, 2009 Жалоба Поделиться Опубликовано 22 апреля, 2009 Vol89program palindrom;var a,c:string; i,b,n:integer;beginb:=1;readln(a);c:=a;n:=0;for i:=1 to length(a) do if a[i]=' ' then n:=n+1 else c[i-n]:=a[i];for i:=1 to length(c)-n do if c[i]<>c[length(с)-n -i +1] then b:=0;if b=0 then writeln ('net')else writeln ('da');end.Вот исправил, предыдущая программа с пробелами строки не определяла. Ссылка на комментарий
Vol89 Опубликовано 22 апреля, 2009 Жалоба Поделиться Опубликовано 22 апреля, 2009 Ва... Ва... Точно.А я думаю что же ещё надо было добавить?program Pioc;type mas=array[1..5,1..7] of integer;var a,b:mas; i,j,max:integer;procedure vvod(var c:mas;k,l:integer); begin for i:=1 to k do for j:=1 to l do c[i,j]:=random(99); end; procedure vyvod(c:mas;k,l:integer); begin for i:=1 to k do Begin for j:=1 to l do write(c[i,j]:4); writeln; end; end; procedure maximum(c:mas;k,l:integer); begin max:=c[1,1]; for i:=1 to k do for j:=1 to l do if a[i,j]>max then begin max:=a[i,j]; end; writeln('max=',max);end;begin randomize; vvod(A,4,7); vvod(B,5,6); writeln('Матрица А:'); vyvod(A,4,7); writeln('Матрицу Б:'); Vyvod (B,5,6); writeln; writeln('max matr A'); maximum(A,4,7); writeln('max matr B'); maximum(B,5,6);end.Написать программу для нахождения факториала числа. |> n!=1*2*3*4*5*...n; 5!=1*2*3*4*5=120 Ссылка на комментарий
SxLvn Опубликовано 26 апреля, 2009 Жалоба Поделиться Опубликовано 26 апреля, 2009 ак Ссылка на комментарий
Галсан Опубликовано 26 апреля, 2009 Жалоба Поделиться Опубликовано 26 апреля, 2009 Помогите дорешить задачку:Вставить в словах за каждой буквой "а" сочетание "мы"вот код:uses crt;const y=1;var a:array[1..y] of string; i,j,z:integer;beginclrscr;writeln('BBeguTe cJIoBo');for i:=1 to y doreadln(a[i]);clrscr;for i:=1 to y dowrite(a[i],' ');writeln;for i:=1 to y dobeginz:=0;repeatz:=pos ('a',a[i]);if z<>0 thenbegininsert ('MbI', a[i], z+1);end;until z>0;end;for i:=1 to y dowrite(a[i],' ');readkey;end.program zad; Ссылка на комментарий
bayarookie Опубликовано 26 апреля, 2009 Жалоба Поделиться Опубликовано 26 апреля, 2009 Галсанuses wincrt;const y = 1;var a: array[1..y] of string; i, j: integer; s: string;begin clrscr; writeln('BBeguTe cJIoBo'); for i := 1 to y do readln(a[i]); for i := 1 to y do begin s := ''; for j := 1 to Length(a[i]) do begin s := s + a[i][j]; if a[i][j] = 'a' then s := s + 'MbI'; end; a[i] := s; end; for i := 1 to y do write(a[i], ' ');end.program zad; Ссылка на комментарий
Рекомендуемые сообщения
Пожалуйста, войдите, чтобы комментировать
Вы сможете оставить комментарий после входа в
Войти