|
06.01.2007, 02:13
|
#2
|
Местный житель
Регистрация: 13.06.2006
Адрес: Ейск
Возраст: 34
Сообщений: 1,906
Р:
|
Нужна помощь в паскале.
14 решал сам, проверте
Код:
Program z14;
var x,a,b:integer
begib
Writeln ('Введите первое число');
readl(a);
Writeln ('Введите второе число');
readln(b);
IF a>b then
x:=(a/b)+1;
writeln ('Введеные значения совпадают условию a>b');
writeln ('Ответ равен',x);
IF a=b then
x:=-2;
writeln ('Введеные значения совпадают условию a=b');
writeln ('Ответ равен',x);
IF a<b then
x:=(a-b)/a;
writeln ('Введеные значения совпадают условию a<b');
writeln ('Ответ равен',x);
readln;
end.
ЗЫ Надо проверять, хз но по такому принципу работать будет
|
|
|
06.01.2007, 02:14
|
#3
|
Guest
|
Нужна помощь в паскале.
Хаирус ботанег
|
|
|
06.01.2007, 02:18
|
#4
|
Завсегдатай
Регистрация: 18.11.2005
Сообщений: 237
Галерея:
0
Р:
|
Нужна помощь в паскале.
Первую и вторую я решил!
Код:
program lab2var14;
uses CRT;
Label L1;
var a,d,X:real;
begin
ClrScr;
writeln(' |a/d+1, Esli a>d');
writeln(' X=|-2, Esli a=d');
writeln(' |(a-d)/a Esli a<d');
L1:
writeln('Vvedite a');
readln(a);
writeln('Vvedite d');
readln(d);
if (a<>round(a)) or (d<>round(d)) then
begin
writeln('a ili b ne tseloe');
goto L1;
end
else;
if a>d then
begin
if d=0 then
begin
writeln('Znamenatel =0');
goto L1;
end
else X:=a/d+1;
end
else;
if a=d then X:=-2 else;
if a<d then
begin
if a=0 then
begin
writeln('Znamenatel =0');
goto L1;
end
else X:=(a-d)/a;
end;
writeln('Pri a= ',a,' i ',' d= ',d,' znachenie funkcii ',X:8:3);
readln;
end.
|
|
|
06.01.2007, 02:26
|
#5
|
Местный житель
Регистрация: 13.06.2006
Адрес: Ейск
Возраст: 34
Сообщений: 1,906
Р:
|
Нужна помощь в паскале.
Видать я смысл не понял ))
|
|
|
06.01.2007, 05:22
|
#6
|
Поселенец
Регистрация: 23.02.2006
Адрес: from infinity
Возраст: 35
Сообщений: 474
Галерея:
0
Р:
|
Нужна помощь в паскале.
Я в свое время занял 2-ое место по городу в олемпиаде ... ))
|
|
|
06.01.2007, 05:29
|
#7
|
Automation Engineer
Регистрация: 24.10.2003
Адрес: Solar System
Возраст: 41
Сообщений: 2,488
Галерея:
0
Р:
|
Re: Нужна помощь в паскале.
Цитата:
Сообщение от Gek
Первую и вторую я решил!
|
Третья задача, 14-ый вариант
Код:
program lab3v14;
uses Crt;
const
n = 20;
var
A: array[1..n] of Integer;
procedure FillArray;
var
i: Integer;
begin
WriteLn('Reference array:');
Randomize;
for i:= 1 to n do
begin
A[i]:= 32767 - Random(65535);
WriteLn(A[i]);
end;
end;
procedure GetSum(Mas: array of Integer);
var
Res: Real;
i: Integer;
begin
Res:= 0;
WriteLn('Negative elements:');
for i:= 0 to n-1 do
if Mas[i]< 0 then
begin
WriteLn(Mas[i]);
Res:= Res + ((-1)*Exp(3*Ln(Abs(Mas[i]))));
end;
WriteLn('Result:');
WriteLn(Res)
end;
begin
ClrScr;
FillArray;
GetSum(A);
WriteLn('Press "enter" to exit...');
ReadLn
end.
__________________
When you dream... there are no rules. People can fly, anything can happen...
|
|
|
06.01.2007, 15:23
|
#8
|
Старожил
Регистрация: 03.05.2005
Сообщений: 9,221
Галерея:
0
|
Re: Нужна помощь в паскале.
Цитата:
Сообщение от xELos
Я в свое время занял 2-ое место по городу в олемпиаде ... ))
|
Явно не по русского езыгу.
__________________
И среди моиx друзей людей приличныx нет
И еще плюс ко всему я как мудак одет.
|
|
|
07.01.2007, 02:24
|
#9
|
Завсегдатай
Регистрация: 18.11.2005
Сообщений: 237
Галерея:
0
Р:
|
Нужна помощь в паскале.
В задаче:
Исходные данные задать самостоятельно, учитывая формат элементов массива A.
Код:
Program lab3var14;
uses CRT;
var i,n:integer;
s:real;
A:array [1..20] of integer;
begin
write('Vvedite razmer massiva ');
readln (n);
for i:=1 to n do
begin
write('a[',i,']=');
readln(a[i]);
end;
..........................
.............................
end.
вроде так незнаю чё делать.......
|
|
|
07.01.2007, 03:23
|
#10
|
Automation Engineer
Регистрация: 24.10.2003
Адрес: Solar System
Возраст: 41
Сообщений: 2,488
Галерея:
0
Р:
|
Re: Нужна помощь в паскале.
Цитата:
Сообщение от Gek
В задаче:
Исходные данные задать самостоятельно, учитывая формат элементов массива A.
Код:
Program lab3var14;
uses CRT;
var i,n:integer;
s:real;
A:array [1..20] of integer;
begin
write('Vvedite razmer massiva ');
readln (n);
for i:=1 to n do
begin
write('a[',i,']=');
readln(a[i]);
end;
..........................
.............................
end.
вроде так незнаю чё делать.......
|
Ну если тебя не устраивает заполнение случайными числами типа Integer, то можно воспользоваться такой процедурой (считаю, что массив задан глобальной переменной A: array[1..20] of Integer):
Код:
procedure FillArrayManually;
var
n: Integer;
i: Integer;
tmp: Longint;
flag: Boolean;
begin
flag:= True;
while flag do begin
Write('Enter array length from 1 to 20: ');
ReadLn(n);
if (n<1) or (n>20) then WriteLn('Incorrect array length, try again')
else flag:= False;
end;
for i:= 1 to n do begin
flag:= True;
while flag do begin
Write('Enter A[', i, ']: ');
ReadLn(tmp);
if (tmp< -32768) or (tmp> 32767) then WriteLn('Incorrect number, try again')
else
begin
A[i]:= tmp;
flag:= False;
end;
end;
end;
end;
__________________
When you dream... there are no rules. People can fly, anything can happen...
|
|
|
07.01.2007, 04:21
|
#11
|
Завсегдатай
Регистрация: 18.11.2005
Сообщений: 237
Галерея:
0
Р:
|
Нужна помощь в паскале.
Спасибо РАБОТАЕТ!!!
Код:
program lab3v14;
uses Crt;
const
n = 20;
var
A: array[1..n] of Integer;
procedure FillArrayManually;
var
n: Integer;
i: Integer;
tmp: Longint;
flag: Boolean;
begin
flag:= True;
while flag do begin
Write('Enter array length from 1 to 20: ');
ReadLn(n);
if (n<1) or (n>20) then WriteLn('Incorrect array length, try again')
else flag:= False;
end;
for i:= 1 to n do begin
flag:= True;
while flag do begin
Write('Enter A[', i, ']: ');
ReadLn(tmp);
if (tmp< -32768) or (tmp> 32767) then WriteLn('Incorrect number, try again')
else
begin
A[i]:= tmp;
flag:= False;
end;
end;
end;
end;
procedure GetSum(Mas: array of Integer);
var
Res: Real;
i: Integer;
begin
Res:= 0;
WriteLn('Negative elements:');
for i:= 0 to n-1 do
if Mas[i]< 0 then
begin
WriteLn(Mas[i]);
Res:= Res + ((-1)*Exp(3*Ln(Abs(Mas[i]))));
end;
WriteLn('Result:');
WriteLn(Res)
end;
begin
ClrScr;
FillArrayManually;
GetSum(A);
WriteLn('Press "enter" to exit...');
ReadLn
end.
Только есть интересный момент
ответ выдает как:
...........
-1
-2
-3
-4
Result:
-1.0000000000E+02
.........
Как это убрать?
|
|
|
07.01.2007, 05:02
|
#12
|
Automation Engineer
Регистрация: 24.10.2003
Адрес: Solar System
Возраст: 41
Сообщений: 2,488
Галерея:
0
Р:
|
Re: Нужна помощь в паскале.
Цитата:
Сообщение от Gek
ответ выдает как:
...........
-1
-2
-3
-4
Result:
-1.0000000000E+02
.........
Как это убрать?
|
А в каком виде надо ответ? Если список отрицательных элементов не нужен (я его только для проверки выводил) убери строчки
WriteLn('Negative elements:');
и
WriteLn(Mas[i]);
из процедуры GetSum
__________________
When you dream... there are no rules. People can fly, anything can happen...
|
|
|
07.01.2007, 13:55
|
#13
|
Завсегдатай
Регистрация: 18.11.2005
Сообщений: 237
Галерея:
0
Р:
|
Нужна помощь в паскале.
-1.0000000000E+02
-100
|
|
|
07.01.2007, 15:34
|
#14
|
Automation Engineer
Регистрация: 24.10.2003
Адрес: Solar System
Возраст: 41
Сообщений: 2,488
Галерея:
0
Р:
|
Re: Нужна помощь в паскале.
Цитата:
Сообщение от Gek
-1.0000000000E+02
-100
|
Вообще у тебя в условии задачи написано, что для четырнадцатого варианта ответ должен быть вещественным числом. Но если так уж надо целое, то измени чуть-чуть процедуру GetSum
Код:
procedure GetSum(Mas: array of Integer);
var
Res: Real;
i: Integer;
Res_Out: Longint;
begin
Res:= 0;
WriteLn('Negative elements:');
for i:= 0 to n-1 do
if Mas[i]< 0 then
begin
WriteLn(Mas[i]);
Res:= Res + ((-1)*Exp(3*Ln(Abs(Mas[i]))));
end;
Res_Out:= Trunc(Res);
WriteLn('Result:');
WriteLn(Res_Out)
end;
__________________
When you dream... there are no rules. People can fly, anything can happen...
|
|
|
07.01.2007, 22:59
|
#15
|
Завсегдатай
Регистрация: 18.11.2005
Сообщений: 237
Галерея:
0
Р:
|
Нужна помощь в паскале.
а как ещё ОДЗ влепить на целые числа
не работает.
|
|
|
07.01.2007, 23:15
|
#16
|
Automation Engineer
Регистрация: 24.10.2003
Адрес: Solar System
Возраст: 41
Сообщений: 2,488
Галерея:
0
Р:
|
Re: Нужна помощь в паскале.
Цитата:
Сообщение от Gek
а как ещё ОДЗ влепить на целые числа
не работает.
|
Будь добр, поясни мысль, я как то слабо понял, что на этот раз не так? Если тебе надо было вывести целое число в ответе, то чем не устраивает последний, предложенный мной, вариант?
А это что еще такое???
__________________
When you dream... there are no rules. People can fly, anything can happen...
|
|
|
07.01.2007, 23:26
|
#17
|
Завсегдатай
Регистрация: 18.11.2005
Сообщений: 237
Галерея:
0
Р:
|
Нужна помощь в паскале.
эт если водишь 1.5 прогу выкидывает...
во второй задаче я делал так:
Код:
............
writeln('Vvedite a');
readln(a);
writeln('Vvedite d');
readln(d);
if (a<>round(a)) or (d<>round(d)) then
begin
writeln('a ili b ne tseloe');
goto L1;
end
............
из задания:
Цитата:
Задав одномерный массив целочисленных данных А
|
|
|
|
08.01.2007, 00:08
|
#18
|
Automation Engineer
Регистрация: 24.10.2003
Адрес: Solar System
Возраст: 41
Сообщений: 2,488
Галерея:
0
Р:
|
Re: Нужна помощь в паскале.
Цитата:
Сообщение от Gek
эт если водишь 1.5 прогу выкидывает...
во второй задаче я делал так:
Код:
............
writeln('Vvedite a');
readln(a);
writeln('Vvedite d');
readln(d);
if (a<>round(a)) or (d<>round(d)) then
begin
writeln('a ili b ne tseloe');
goto L1;
end
............
из задания:
Цитата:
Задав одномерный массив целочисленных данных А
|
|
Ясно... обновляй процедуру FillArrayManually
Код:
procedure FillArrayManually;
var
n: Integer;
i: Integer;
tmp: Real;
flag: Boolean;
begin
flag:= True;
while flag do begin
Write('Enter array length from 1 to 20: ');
ReadLn(n);
if (n<1) or (n>20) then WriteLn('Incorrect array length, try again')
else flag:= False;
end;
for i:= 1 to n do begin
flag:= True;
while flag do begin
Write('Enter A[', i, ']: ');
ReadLn(tmp);
if (tmp<>Round(tmp)) or (tmp< -32768) or (tmp> 32767) then WriteLn('Incorrect number, try again')
else
begin
A[i]:= Round(tmp);
flag:= False;
end;
end;
end;
end;
Надеюсь проверку от ввода не числовых данных делать от вас не требуют?
__________________
When you dream... there are no rules. People can fly, anything can happen...
|
|
|
08.01.2007, 18:47
|
#19
|
Завсегдатай
Регистрация: 18.11.2005
Сообщений: 237
Галерея:
0
Р:
|
Нужна помощь в паскале.
Фуф ели ка отчитал эту работу.
ему не понравилась формула ((-1)exp(3*ln(abs(x)))=... , пришлось переделывать (x*x*x)....
теперь хоть знаю ка со степенями работать........!
Цитата:
ЦЕЛЬ РАБОТЫ. Задав двумерный массив вещественных данных (матрицу А), реализовать его обработку, как указано в варианте. Исходные данные задать самостоятельно, учитывая специфику задачи.
В программе должны быть предусмотрены процедуры ввода-вывода элементов массива А и его обработки
Код:
Найти сумму всех ее элементов и заменить ею все диагональные элементы этой матрицы.
|
Код:
Program LAB4v14;
var a:array [1..10,1..10] of integer;
i,j,n,k:integer;
begin
write('n=');
readln(n);
for i:=1 to n do
for j:=1 to n do
readln(a[i,j]);
writeln('Bila vvedina matrica:');
for i:=1 to n do
begin
for j:=1 to n do
write(a[i,j]);
writeln;
end;
.................................
что дальше делать???
|
|
|
08.01.2007, 19:09
|
#20
|
Automation Engineer
Регистрация: 24.10.2003
Адрес: Solar System
Возраст: 41
Сообщений: 2,488
Галерея:
0
Р:
|
Re: Нужна помощь в паскале.
Цитата:
Сообщение от Gek
что дальше делать???
|
Ну допустим, что сумма это переменная Sum
Код:
for i:= 1 to n do
for j:= 1 to n do
Sum:= Sum + A[i,j];
У диагональных элементов (я так понимаю нужна только главная диаглналь) i=j, следовательно
Код:
for i:= 1 to n do A[i,i]:= Sum;
__________________
When you dream... there are no rules. People can fly, anything can happen...
|
|
|
14.01.2007, 03:07
|
#21
|
Завсегдатай
Регистрация: 18.11.2005
Сообщений: 237
Галерея:
0
Р:
|
Нужна помощь в паскале.
Доделал......
Код:
Program Lab4v14;
Uses CRT;
Var
a:array [1..10,1..10] of real;
i,j,n: integer;
y,q,w,s:real;
begin
writeln ('Zadanie:');
writeln ('naiti symmy elementov matrici i zamenit eyu vse diagonalnie elementi');
writeln ('');
write ('vvedite razmer matrici, A=');
read (n);
randomize;
for i:=1 to n do
begin
for j:=1 to n do
begin
A[i,j]:=random(10)-random(10);
end;
end;
s:=0;
for i:=1 to n do
for j:=1 to n do
if j>i then
s:=s+a[i,j];
w:=0;
for i:=1 to n do
for j:=1 to n do
if j<i then
w:=w+a[i,j];
q:=0;
for i:=1 to n do
for j:=1 to n do
if j=i then
q:=q+a[i,j];
ClrScr;
writeln('matrica A');
for i:=1 to n do
begin
for j:=1 to n do
write(a[i,j]:8:0,' ');
writeln
end;
readln;
writeln;
readln;
ClrScr; {<==для наглядности это можно убрать}
y:=q+w+s;
for i:=1 to n do
for j:=1 to n do
if j=i then
a[i,j]:=y;
y:=q+w+s;
for i:=1 to n do
for j:=1 to n do
if i+j-1=N then
a[i,j]:=y;
y:=N;
for i:=1 to n do
begin
for j:=1 to n do
write(a[i,j]:8:0,' ');
writeln
end;
Writeln;
Readln;
end.
Осталось последнее.
на плоскости X,Y. (10х10) построить треугольник.
X1,Y1; X2,Y2; X3,Y3.
1. Через процедуру M-Вычислить длину и проверить, можно ли построить треугольник.
2. Через функцию S-вычислить площадь.
3. M и S поместить в Unit (модуль).
|
|
|
17.01.2007, 23:29
|
#22
|
Завсегдатай
Регистрация: 18.11.2005
Сообщений: 237
Галерея:
0
Р:
|
Нужна помощь в паскале.
Закройте тему..........!
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Похожие темы
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
Нужна помощь
|
XS Project |
Городская жизнь |
1309 |
14.06.2019 17:23 |
Нужна помощь
|
gummpv |
Флейм |
5 |
18.04.2008 23:35 |
Нужна помощь!
|
ozon |
Городская жизнь |
7 |
18.12.2007 13:51 |
Нужна помощь в С\С++
|
Gek |
Программирование, компьютерное творчество |
3 |
17.06.2007 00:40 |
нужна помощь
|
Ravil |
Флейм |
2 |
03.05.2007 15:16 |
Часовой пояс GMT +6, время: 06:42.
|