Страница 1 из 1
Помогите плиз с задачами на паскали
Добавлено: 22 янв 2008, 16:37
NoRFrus
Помогите пожалуйста с тремя задачами на паскале а то завтра ппц
1. Написать программу вычисляющую сумму N чисел ряда числовой последовательности X+ (X в третий степени /3) + (X в пятой степени /5) + (X в седьмой степени /7) + ... +
x<1/3
Записать числа в одномерный масив
2. дан двумерный масив. Найи максимум в указанном столбце и переставить с минимумом в указанной стороке.
3. Создать текстовый файл и ввести текст. Вывести из этого файла текст и определить является ли первое слово в файле числом.
Re: Помогите плиз с задачами на паскали
Добавлено: 22 янв 2008, 19:48
MOTOCoder
Немного непонятно с первой задачей: последовательность выглядит так
a[1]=x
a[2]=(x^3)/3
a[3]=(x^5)/3
....
или так
a[1]=x
a[2]=x+(x^2)/3
a[3]=x+(x^2)/3+(x^3)/3
...
Если первый вариант, то решить можно так:
[syntax='delphi']
program p1;
const
N0=100;
var
N:integer;
i,j:integer;
a:array[1..N0]of real;
x:real;
sum:real;
function pow(x,p:real):real;
begin
pow:=exp(p*ln(x));
end;
begin
writeln('Введите N:');
readln(N);
writeln('Введите X:');
readln(x);
j:=0;
for i:=1 to N*2 do
if (i mod 2)=1 then
begin
inc(j);
a[j]:=pow(x,i)/3;
sum:=sum+a[j];
end;
for i:=1 to j do
write(a:0:5,' ');
writeln;
writeln('Сумма=',sum:0:5);
readln;
end.
[/syntax]
Вторая решается примерно так:
[syntax='delphi']
program New_Project;
const
N=10;
var
i,j:integer;
a:array[1..N]of array[1..N]of integer;
max,min:integer;
col,row:integer;
maxidx,minidx:integer;
procedure display;
begin
for i:=1 to n do
begin
for j:=1 to n do
write(a[i,j]:3,' ');
writeln;
end;
end;
begin
randomize;
for i:=1 to n do
for j:=1 to n do
a[i,j]:=random(100);
display;
writeln('Введите номер столбца:');
readln(col);
writeln('Введите номер строки:');
readln(row);
max:=a[col,1];
for i:=1 to n do
if a[col,i]>max then
begin
max:=a[col,i];
maxidx:=i;
end;
min:=a[1,row];
for i:=1 to n do
if a[i,row]<min then
begin
min:=a[i,row];
minidx:=i;
end;
j:=a[col,maxidx];
a[col,maxidx]:=a[minidx,row];
a[minidx,row]:=j;
display;
readln;
end.
[/syntax]
На счет третьей не понял:
текст вводится зарание или в ходе выполнения программы?
ну в первой
Добавлено: 22 янв 2008, 19:53
NoRFrus
a[1]=x
a[2]=(x^3)/3
a[3]=(x^5)/5
a[3]=(x^7)/7
....
Спасибо за вторую прогу
Re: Помогите плиз с задачами на паскали
Добавлено: 22 янв 2008, 19:59
MOTOCoder
Тогда наверное так:
[syntax='delphi']
program p1;
const
N0=100;
var
N:integer;
i,j:integer;
a:array[1..N0]of real;
x:real;
sum:real;
function pow(x,p:real):real;
begin
pow:=exp(p*ln(x));
end;
begin
writeln('Введите N:');
readln(N);
writeln('Введите X:');
readln(x);
j:=0;
for i:=1 to N*2 do
if (i mod 2)=1 then
begin
inc(j);
a[j]:=pow(x,i)/i;
sum:=sum+a[j];
end;
for i:=1 to j do
write(a
:0:5,' ');
writeln;
writeln('Сумма=',sum:0:5);
readln;
end.
[/syntax]
На счет третьей не понял:
текст вводится зарание или в ходе выполнения программы?
Re: Помогите плиз с задачами на паскали
Добавлено: 22 янв 2008, 20:13
NoRFrus
Создание файла и ввод текста в него должен происходить в проге
Re: Помогите плиз с задачами на паскали
Добавлено: 22 янв 2008, 20:26
MOTOCoder
Тогда примерно так:
[syntax='delphi']
program New_Project;
const
ns=['1'..'9']+['0']+['-']+['.'];
var
f:text;
i:integer;
txt,s:string;
bnum:boolean;
begin
assign(f,'file.txt');
rewrite(f);
writeln('Введите текст:');
readln(txt);
writeln(f,txt);
close(f);
assign(f,'file.txt');
reset(f);
readln(f,txt);
close(f);
repeat
inc(i);
if txt<>' ' then
s:=s+txt;
until (txt=' ')or(i=length(txt));
writeln('Первое слово "',s,'"');
bnum:=true;
for i:=1 to length(s) do
if not (s in ns) then bnum:=false;
if bnum then writeln('Число') else writeln('Не число');
readln;
end.
[/syntax]
Re: Помогите плиз с задачами на паскали
Добавлено: 22 янв 2008, 20:30
NoRFrus
в первой задаче он конечно что тозапредельное выводит.
из второй я кусочек взял в свой врянт и заработало.
сейчас третью попробую))
Спс за проги
Re: Помогите плиз с задачами на паскали
Добавлено: 22 янв 2008, 21:07
MOTOCoder
В каком смысле "запредельное"?
Re: Помогите плиз с задачами на паскали
Добавлено: 22 янв 2008, 22:35
NoRFrus
Уже всё норм)