Помогите к экзамену
2.Дано действительное число Е (Е>0). Последовательность а1,а2…. Образованна по следующему закону.()
Найти первый член Аn (n>=2) для каждого выполнено условие |An-An-1|
3.Дан файл f, компоненты которого являются целыми числами, записать в файл g всё чётные компоненты файла f, а в файл h все не чётные. Порядок следования комп.
сохранить.
тут следует воспользоваться множествами, типа такого:
...
m:=['a'..'z'];
if s[1] in m then write('первый символ строки S - малая латинская буква');
анлогочино можно провернуть и с цифрами, только вместо a и z поставить 0 и 9 соответственно.
3.Дан файл f, компоненты которого являются целыми числами, записать в файл g всё чётные компоненты файла f, а в файл h все не чётные. Порядок следования комп.
сохранить.
Здесь тебе поможет функция Odd(), которая определяет четность/нечетность числа.
Например:
if odd(3) then write('число нечетное');
т.е. odd() возвращает значение true значит число нечетное, иначе число четное.
так уж и быть, вот тебе 3-я задача:
uses crt;
Var f,g,h:File Of Integer;
i,j,n:integer;
s1,s2:string;
Begin
clrscr;
AssignFile(f,'file');
ReWrite(f);
[COLOR=red] For i:=1 To 20 Do
begin
readln(n);
write(f,n);
end;[/COLOR]
closefile(f);
s1:='файл с четными числами';
s2:='файл с нечетными числами';
AssignFile(g,'четные');
AssignFile(h,'нечетные');
ReWrite(g); ReWrite(h); reset(f);
for i:=0 to filesize(f)-1 do
begin
read(f,j);
if odd(j) then
begin
write(h,j);
s2:=s2+' '+inttostr(j);
end
else
beign
write(g,j);
s1:=s1+' '+inttostr(j);
end;
end;
closefile(g); closefile(h); closefile(f);
writeln(s1,^h^m,s2);
end.
1.Дан текст. Если первый символ текста не является малой малой латинской буквой, то текст оставить без изменения. Если же эта маленькая латинская буква, но за начальной группой малых латинских букв не следует цифра, то также оставить текст без изменения. Иначе каждую цифру принадлежащею группе цифр, идущие за начальными группой малых латинских букв, заменить символом *.
Что-то я немного непонял эту задачу, 'начальная группа малых латинских букв' это в каком месте текста???
покажи на примере...
2.Дано действительное число Е (Е>0). Последовательность а1,а2…. Образованна по следующему закону.()
Найти первый член Аn (n>=2) для каждого выполнено условие |An-An-1|
Найти просто вычисленный A2? И что это за условие |An-An-1|? Я вижу просто модуль, а не условие. И причём здесь действительное число E? Объясни, тогда задачу проще решать будет.
Найти просто вычисленный A2? И что это за условие |An-An-1|? Я вижу просто модуль, а не условие. И причём здесь действительное число E? Объясни, тогда задачу проще решать будет.
Мат.анализ - сходится ли последовательность.
Mod(a[n]-a[n-1])<E(psilon)
Для начала нужно определить формулу, по которой a[n]-й элемент получается из a[n-1]-й.
Рисунок довольно запутанный. Но imho
a[0] = 0.5;
a[n] = sqrt(0.5 + sqrt(a[n-1])/2);
uses crt;
var
a1, a2, eps: double;
n: integer;
begin
clrscr;
eps := 0.000001;
a1 := 0;
a2 := 0.5;
n := 0;
while(a2-a1>=eps)
{
Inc(n);
a1 := a2;
a2 := sqrt(0.5 + sqrt(a1)/2);
}
writeln('После ', n, '-го шага разность меньше ', eps);
writeln('a[n] = ', a2);
writeln('a[n-1] = ', a1);
writeln('Разность = ', a2-a1);
end.
Я ещё по 3 задаче переправь пожалуйста чтоб цифры вводились с клавиатуры!!!
Переправил! Смотри тот же код (выше), да кстати там была строка "randomize;" грохни ее...
Ну группа малых латинских букв в начале текста, например напечатал маленькие англ. буквы а потом цифры, если в начале текста большая буква то текст надо оставить без изменения, ну а если начинается с маленькой буквой то цифры заменить *
s:string;
i:integer;
Begin
M1:=['A'..'Z'];
M2:=['a'..'z'];
M3:=['0'..'9'];
readln(s);
if s[1] in M1 then write(s) else
if s[1] in M2 then
begin
for i:=2 to length(s) do
if s in M3 then s:='*';
write(s);
end;
End;
Тебе надо будет немного код исправить на тот случай если в тексте первый символ введут не маленькую и не большую БУКВУ, а например какую-нибудь точку или цифру, или еще че типа такого. Но я думаю ты с этим сам разберешься - в этом коде есть все что нужно для решения этой задачи главное напрячь мозги, немного... ...
Необходимо вывести на экран прямоугольники(примерно 6,7 штук) следующих друг за другом в шахматном порядке(учитель называет это "змейкой"). Еще нужно чтобы эта "змейка" двигалась т.е. например появляется 5 прямоугольник а первый исчезает и т.д.
Модуль Graph нельзя использовать, надо CRT.
Необходимо вывести на экран прямоугольники(примерно 6,7 штук) следующих друг за другом в шахматном порядке(учитель называет это "змейкой"). Еще нужно чтобы эта "змейка" двигалась т.е. например появляется 5 прямоугольник а первый исчезает и т.д.
Модуль Graph нельзя использовать, надо CRT.[/QUOTE]
Чтож твой препод crt так мучает!
как я понял нужно что-то типа такого:
uses crt;
var ch:char;
i:integer;
a:array [1..6,1..2] of integer;
procedure move;
begin
for i:=1 to 6 do
begin
gotoxy(a[i,1],a[i,2]);
write(#218); write(#196); write(#191);
gotoxy(wherex-3,wherey+1);
write(#192); write(#196); write(#217);
end;
end;
begin
a[1,1]:=16; a[1,2]:=1;
a[2,1]:=13; a[2,2]:=1;
a[3,1]:=10; a[3,2]:=1;
a[4,1]:=7; a[4,2]:=1;
a[5,1]:=4; a[5,2]:=1;
a[6,1]:=1; a[6,2]:=1;
repeat
clrscr;
move;
ch:=readkey;
case ch of
#75: if a[1,1]>1 then
begin
a[6,1]:=a[5,1]; a[5,1]:=a[4,1];
a[4,1]:=a[3,1]; a[3,1]:=a[2,1];
a[2,1]:=a[1,1]; a[6,2]:=a[5,2];
a[5,2]:=a[4,2]; a[4,2]:=a[3,2];
a[3,2]:=a[2,2]; a[2,2]:=a[1,2];
dec(a[1,1],3);
end;
#77: if a[1,1]<74 then
begin
a[6,1]:=a[5,1]; a[5,1]:=a[4,1];
a[4,1]:=a[3,1]; a[3,1]:=a[2,1];
a[2,1]:=a[1,1]; a[6,2]:=a[5,2];
a[5,2]:=a[4,2]; a[4,2]:=a[3,2];
a[3,2]:=a[2,2]; a[2,2]:=a[1,2];
inc(a[1,1],3);
end;
#72: if a[1,2]>1 then
begin
a[6,2]:=a[5,2]; a[5,2]:=a[4,2];
a[4,2]:=a[3,2]; a[3,2]:=a[2,2];
a[2,2]:=a[1,2]; a[6,1]:=a[5,1];
a[5,1]:=a[4,1]; a[4,1]:=a[3,1];
a[3,1]:=a[2,1]; a[2,1]:=a[1,1];
dec(a[1,2],2);
end;
#80: if a[1,2]<22 then
begin
a[6,2]:=a[5,2]; a[5,2]:=a[4,2];
a[4,2]:=a[3,2]; a[3,2]:=a[2,2];
a[2,2]:=a[1,2]; a[6,1]:=a[5,1];
a[5,1]:=a[4,1]; a[4,1]:=a[3,1];
a[3,1]:=a[2,1]; a[2,1]:=a[1,1];
inc(a[1,2],2);
end;
end;
until ch=#27;
end.
выход - Escape;
uses CRT;
var i: integer;
begin
delay(50000);
clrscr;
window(5,5,15,7);
textbackground(2);
clrscr;
delay(50000);
window(15,3,25,5);
textbackground(2);
clrscr;
delay(50000);
window(25,5,35,7);
textbackground(2);
clrscr;
delay(50000);
window(5,5,15,7);
textbackground(0);
clrscr;
delay(50000);
window(35,3,45,5);
textbackground(2);
clrscr;
delay(50000);
window(45,5,55,7);
textbackground(2);
clrscr;
delay(50000);
window(15,3,25,5);
textbackground(0);
clrscr;
delay(50000);
window(55,3,65,5);
textbackground(2);
clrscr;
delay(50000);
window(65,5,75,7);
textbackground(2);
clrscr;
delay(50000);
window(25,5,35,7);
textbackground(0);
clrscr;
readln;
end.
А как это сделать я чет не догоняю.
А как это сделать я чет не догоняю.[/QUOTE]
что-то тут намудрил, но вроде работает
uses CRT;
var i,j,x,y:integer;
begin
textbackground(black);
clrscr;
y:=1;
for i:=0 to 17 do
begin
x:=i*4+1;
window(x,y,x+3,y+1);
textbackground(green);
clrscr;
if y=1 then y:=3 else y:=1;
for j:=1 to 20 do delay(1000);
if i>4 then
begin
window(x-20,y,x-17,y+1);
textbackground(black);
clrscr;
end;
end;
readln;
end.