Убедительная просьба ко всем, кто выкладывает исходники: 1. Обязательно пользуйтесь тэгом code (иначе очень трудно читать)
2. Старайтесь делать отступы
Если вы хотите чтобы вам помогли в написании программы, внятно излагайте задание!
Прежде чем задать вопрос, воспользуйтесь учебником
Возможно, что нужная вам программа уже написана, поэтому советую просмотреть список здесь и здесь Отредактировано куратором: Lord_of_Darkness. Дата: 07.07.2006 19:36
Куратор темы Статус: Не в сети Регистрация: 03.01.2004 Откуда: Питер
E1dar
а поиск? как минимум одну из них я уже выкладывал.
ну да ладно
номер раз
Код:
function DownCase(symb : char):char; begin if symb in ['A'..'Z'] then DownCase := CHR(ORD(symb)+32) else DownCase := symb; end;
var str : string; i: integer;
begin
write('Input string: '); readln(str); i:=1; while (str[i]<>'!') do begin write(DownCase(str[i])); inc(i); end; readln; end.
номер два
Код:
var i, counter, max : integer; str : string;
begin write('Input string: '); readln(str); i:=1; counter := 0; max := 0; while i <= Length(str) do begin if str[i]<>' ' then inc(counter) else begin if counter > max then max := counter; counter := 0; end; inc(i); end; write('Max word length is ', max); readln; end.
номер три
Код:
function Ch2Int(ch: char): integer; begin if ch in ['0'..'9'] then Ch2Int := ORD(ch) - 48 else Ch2Int := -1; end;
var str : string; numarr : array [0..9] of integer; i, maxind : integer;
begin write('Input string: '); readln(str); for i:=0 to 9 do numarr[i]:=0; i:=1; while str[i] <> '.' do begin maxind := Ch2Int(str[i]); if maxind <> -1 then inc(numarr[maxind]); inc(i); end;
maxind := 0; for i:=0 to 9 do if numarr[i]>numarr[maxind] then maxind := i;
writeln('Most frequent number is ',maxind);
readln; end.
номер четыре
Код:
var str : string; i : integer; ch : char; flag : boolean;
begin write('Input string: '); readln(str); ch := str[1]; i:=2; flag := true; while (str[i] <> '.') do begin inc(ch); if (str[i] <> ch) then begin flag := false; break; end; inc(i); end;
if flag then write('Text is regulate') else write('Text is not regulate');
readln; end.
_________________ Здесь так мало тех, с кем легко говорить,
Еще меньше тех, с кем не страшно молчать (c)
Я написал свой модуль. В чем может быть ошибка, что при запуске модуля Паскаль выдает:
Cannot run a unit
Вот этот модуль:
Код:
unit TextUnit; interface const n = 1000; type new = array [1..n] of char; fail = file of char;
procedure CLEAR_BUF; {procedura ochistki byfera klaviatury} procedure VVOD_TEKSTA (var i : integer; var A : new); {procedura vvoda teksta s klaviatury} procedure VVOD_ADRESA (var i : integer; var A : new; var datfile : fail); {procedura schityvanija teksta iz faila} procedure SOHRANENIE (i : integer; A : new; var datfile : fail); {procedura sohranenija teksta, esli on byl vveden s klaviatyry} procedure PEREZAPIS (i : integer; A : new; var datfile : fail); {procedura sohranenija teksta, esli on byl schitan iz faila}
implementation uses Crt;
procedure CLEAR_BUF; var ch : char; begin while keypressed do ch:=readkey; end;
procedure VVOD_TEKSTA; begin ClrScr; write ('Vvedite tekst '); writeln ('(Okonchanie teksta - tochka) :'); i:=0; repeat i:=i+1; A[i]:=readkey; CLEAR_BUF; if A[i]='.' then break; A[i]:=UpCase (A[i]); write (A[i]); until A[i]='.'; writeln; end;
procedure VVOD_ADRESA; var soderzhimoe : char; name : string; begin ClrScr; writeln('Vvedite adres faila s tekstom (!! POLNOSTIU !!)'); writeln('Esli ranee soxranjalsja cherez Paskal, to DAT-file'); Read (name); i:=0; Assign (datfile, name); Reset (datfile); repeat inc(i); read (datfile, soderzhimoe); A[i]:=UpCase (soderzhimoe); until A[i] = '.'; Close (datfile); end;
procedure SOHRANENIE; var name : string; q : integer; begin ClrScr; writeln ('Vvedite adres DAT-faila (!! POLNOSTIU !!) dla sohranenia'); Read (name); Assign (datfile, name); Rewrite (datfile); for q:=1 to i do write (datfile, A[q]); Close (datfile); end;
procedure PEREZAPIS; var q, l : integer; begin ClrScr; l:=0; Reset (datfile); Rewrite (datfile); Seek (datfile, l); for q:=1 to i do write (datfile, A[q]); Close (datfile); end; END.
Помогите с написанием программы. Задание: дан 2 мерный массив размерностью n на m состоящий из 0 и 1. Преобразовать его так чтобы из 1 получились квадраты 2х2, лишние 1 выделить красным цветом. Например: 1 строка: 0 1 0 0 1 1; 2 строка: 1 0 0 1 0 0; должно получится: 1 строка: 1 1 0 0 0 1; 2 строка: 1 1 0 0 0 0.
если не влом то напишите в виде процедуры.
Все я нашел ошибку!!!! Оказывается если в модуле создан новый тип ( у меня new ), то в главной программе не нужно его описывать еще раз, иначе Pascal выдает ошибку!!!
Ступил, блин
Последний раз редактировалось skier 23.03.2007 21:45, всего редактировалось 1 раз.
Помогите с написанием программы. Задание: дан 2 мерный массив размерностью n на m состоящий из 0 и 1. Преобразовать его так чтобы из 1 получились квадраты 2х2, лишние 1 выделить красным цветом. Например: 1 строка: 0 1 0 0 1 1; 2 строка: 1 0 0 1 0 0; должно получится: 1 строка: 1 1 0 0 0 1; 2 строка: 1 1 0 0 0 0. если не влом то напишите в виде процедуры.
Код:
Uses Crt; const n=6; m=6; type Mas = array [1..n, 1..m] of integer; var A1, Kras1 : Mas;
Procedure VVOD(var A : Mas); var i, j : integer; begin TextColor(White); for i:=1 to n do for j:=1 to m do A[i,j]:=random(2); end;
Procedure SORT(var A : Mas); var i, j, k, B : integer; begin for i:=1 to n do for j:=1 to m do begin if (j mod 3 = 0) then if (A[i,j]=1) then begin for k:=j+1 to n do if A[i,k]=0 then begin B:=A[i,j]; A[i,j]:=A[i,k]; A[i,k]:=B; end; continue; end else continue;
if A[i,j]=0 then begin for k:=j+1 to m do if A[i,k]=1 then begin B:=A[i,j]; A[i,j]:=A[i,k]; A[i,k]:=B; end; end; end; end;
Procedure VYDELENIE_KRASNYM(A : Mas; var Kras : Mas); var i, j, M : integer; begin for i:=1 to (n-1) do for j:=1 to (m-1) do begin M:=A[i,j]+A[i,j+1]+A[i+1,j]+A[i+1,j+1]; if M=4 then begin Kras[i,j]:=2; Kras[i,j+1]:=2; Kras[i+1,j]:=2; Kras[i+1,j+1]:=2; end; if A[i,j]=1 then if Kras[i,j]<>2 then Kras[i,j]:=1; if A[i,j+1]=1 then if Kras[i,j+1]<>2 then Kras[i,j+1]:=1; if A[i+1,j]=1 then if Kras[i+1,j]<>2 then Kras[i+1,j]:=1; if A[i+1,j+1]=1 then if Kras[i+1,j+1]<>2 then Kras[i+1,j+1]:=1; end; end;
Procedure VYVOD_Kras(A, Kras : Mas); var i, j : integer; begin writeln; for i:=1 to n do begin for j:=1 to m do if Kras[i,j]=1 then begin TextColor(Red); write(A[i,j],' '); TextColor(White); end else write (A[i,j],' '); writeln; end; end;
Procedure VYVOD(A : Mas); var i, j : integer; begin writeln; for i:=1 to n do begin for j:=1 to m do write(A[i,j],' '); writeln; end; end;
BEGIN ClrScr; Randomize; VVOD(A1); VYVOD(A1); SORT(A1); VYDELENIE_KRASNYM(A1, Kras1); VYVOD_Kras(A1, Kras1); repeat until keypressed; END.
Member
Статус: Не в сети Регистрация: 24.09.2006 Откуда: Riga, Latvia
Всем привет!
Помогите плз сделать лабараторную по паскалю.
Задание:
Дан массив размера N. Вывести в начале его элементы с чётными индексами, а затем с нечётными.
Заранее большое спасибо.
Дан массив размера N. Вывести в начале его элементы с чётными индексами, а затем с нечётными.
Код:
Uses Crt; const n=10; type Mas = array [1..n] of integer; var A1 : Mas;
procedure VVOD(var A : Mas); var i : integer; begin for i:=1 to n do begin A[i]:=i; write(A[i],' '); end; writeln; end;
procedure VYVOD(A : Mas); var i : integer; begin writeln('Chetnye indeksy :'); for i:=1 to n do if (i mod 2 = 0) then write(A[i],' '); writeln; writeln('Nechetnye indeksy :'); for i:=1 to n do if (i mod 2 = 1) then write(A[i],' '); end;
Скажите пожалуйста, этот кусок правильный? Он выполняет сортировку.
Код:
repeat flag:=true; for i:=1 to (e-1) do with cpus[i] do if (cpus[i].Frequency)>(cpus[i+1].Frequency) then Begin tmp[i]:=cpus[i]; cpus[i]:=cpus[i+1]; cpus[i+1]:=tmp[i]; flag:=false; end; until flag;
Здравствуйте, большая просьба:помогите, пожалуйста, решить задачу.
Даны натуральные числа P и Q (Q>=2). Получить Q-ичное представление числа P в виде последовательности а0, а1, . . . , аn целых неотрицательных чисел аi являющихся цифрами Q-ичной системы счисления, то есть, чтобы имело место равенство
n
∑ ai*(Q)**i=P, где аn <>0.
i =0
Даны натуральные числа P и Q (Q>=2). Получить Q-ичное представление числа P в виде последовательности а0, а1, . . . , аn целых неотрицательных чисел аi являющихся цифрами Q-ичной системы счисления, то есть, чтобы имело место равенство n ∑ ai*(Q)**i=P, где аn <>0. i =0
Код:
Uses Crt; const n = 50; type Mas = array [1..n] of byte; var a1, i, j : integer; sis1 : byte; B1 : Mas;
procedure VVOD(var a : integer; var sis : byte); begin write('Vvedite chislo v desjatichnoi sist. ischislenija: '); readln(a); write('V kakyu sist. ischislenija perevodit: '); readln(sis); while sis < 2 do begin writeln('Dolzhno byt >= 2, vvedite eche raz!'); write('V kakyu sist. ischislenija perevodit: '); readln(sis); end; end;
procedure PEREVOD(a : integer; var B : Mas; sis : byte); var X : Mas; begin i:=0; while (a <> 0) do begin inc(i); X[i]:=(a mod sis); a:=(a div sis); end; for j:=1 to i do B[j]:=X[i-j+1]; end;
procedure VYVOD(a : integer; B : Mas; sis : byte); begin write('Chislo ',a ,' v ',sis,'-chnoi sist. ischislenija: '); for j:=1 to i do write(B[j]); readln; end;
mareolitta надо было сразу говорить через что делать, ну ладно вот эта прога через списки:
Код:
Uses Crt; type node_ptr = ^node; node = record ch : char; next : node_ptr; end; var a1 : integer; sis1 : byte; B : node_ptr;
procedure VVOD(var a : integer; var sis : byte); begin write('Vvedite chislo v desjatichnoi sist. ischislenija: '); readln(a); write('V kakyu sist. ischislenija perevodit: '); readln(sis); while sis < 2 do begin writeln('Dolzhno byt >= 2, vvedite eche raz!'); write('V kakyu sist. ischislenija perevodit: '); readln(sis); end; end;
procedure PEREVOD(a : integer; sis : byte); var temp : node_ptr; i , k : integer; begin i:=0; B:=nil; while (a <> 0) do begin inc(i); temp:=B; new(B); k:=(a mod sis); if (0 <= k) and (k <= 9) then inc(k, 48) else begin k:=k+55; end; B^.ch:=chr(k); a:=(a div sis); B^.next:=temp; end; end;
procedure VYVOD(a : integer; sis : byte); var temp : node_ptr; begin write('Chislo ',a ,' v ',sis,'-chnoi sist. ischislenija: '); while B <> nil do begin write(B^.ch); temp:=B^.next; Dispose(B); B:=temp; end; readln; end;
BEGIN ClrScr; VVOD(a1, sis1); PEREVOD(a1, sis1); VYVOD(a1, sis1); END.
помогите с программой, сам никак не могу Заранее спасибо!
Цитата:
Дан файл f, компоненты которого являются целыми числами. Никакая из компонент файла f не равна 0. Числа в файле идут в следующем порядке: 10 положительных, 10 отрицательных, 10 положительных, ... Переписать компоненты файла f в файл g так, чтобы в файле g числа шли в следующем порядке: 5 положительных, 5 отрицательных, 5 положительных, ...
Куратор темы Статус: Не в сети Регистрация: 03.01.2004 Откуда: Питер
stupid user
Код:
procedure CreateIntFile(FileName : string; count : integer); var num, sign, i : integer; fl : file of integer; begin Assign(fl,FileName); Rewrite(fl); sign := 1; randomize(); for i:=1 to count do begin num := sign*random(1000); write(fl,num); if i mod 10 = 0 then sign:=-sign; end; Close(fl); end;
var fIn, fOut : file of integer; block1, block2 : array [1..5] of integer; FilenName : string; i, num, count : integer;
begin count := 100; FilenName := 'C:\tst.int'; CreateIntFile(FilenName, count); Assign(fIn, FilenName); Reset(fIn); Assign(fOut, 'C:\fOut.int'); Rewrite(fOut); while FilePos(fIn) <= (count - 20) do begin for i:=1 to 5 do begin read(fIn,num); write(fOut,num); end;
for i:=1 to 5 do read(fIn,block1[i]);
for i:=1 to 5 do read(fIn,block2[i]);
for i:=1 to 5 do write(fOut,block2[i]);
for i:=1 to 5 do write(fOut,block1[i]);
for i:=1 to 5 do begin read(fIn,num); write(fOut,num); end; end; Close(fOut); Close(fIn);
{ Test }
Assign(fIn, FilenName); Reset(fIn);
while not eof(fIn) do begin read(fIn,num); write(num:4,' '); if FilePos(fIn) mod 10 = 0 then writeln; end;
writeln; writeln;
Assign(fOut, 'C:\fOut.int'); Reset(fOut); while not eof(fOut) do begin read(fOut,num); write(num:4,' '); if FilePos(fOut) mod 10 = 0 then writeln; end;
readln;
end.
_________________ Здесь так мало тех, с кем легко говорить,
Еще меньше тех, с кем не страшно молчать (c)
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения