
30.04.2009, 07:52
|
|
Участник форума
Регистрация: 14.03.2009
Сообщений: 237
С нами:
9031410
Репутация:
314
|
|
Сообщение от oOoOoOo
Кому не трудно и кто умеет писать на паскале , нужно сделать вот такую задачку:
Код:
program Project1;
const
_F:array[1..7] of integer=(16,19,21,20,12,31,29); //Исходные данные
var
f,g:textfile; //файлы в которые будем писать
i:integer; // счетчик
begin
Assign(f,'f.dat'); //Открыть файл f
Rewrite(f); //на запись
for i:=1 to 7 do // 7 раз повторить
Writeln(f,_F[i]); //записать в файл f, значение массива _F с индексом i
CloseFile(f); //Закрыть файл
Assign(g,'g.dat'); //Открыть файл g
Rewrite(g); //на запись
for i:=1 to 7 do begin // 7 раз повторить-----------------------------------------------|
if _F[i] mod 5 = 1 //если при делении значения массива _F с индеком i на 5, остаток = 1 |
Then Writeln(g,_F[i]); //тогда записать это значение в файл g |
if _F[i] mod 5 = 4 //если при делении значения массива _F с индеком i на 5, остаток = 1 |
Then Writeln(g,_F[i]); //тогда записать это значение в файл g |
end; // вот тут повтор заканчивается-----------------------------------------------------|
CloseFile(g); //Закрыть файл g
end.
|
|
|

30.04.2009, 02:21
|
|
Banned
Регистрация: 23.05.2008
Сообщений: 59
С нами:
9456866
Репутация:
138
|
|
АП! Срочно просто надо! Моя задачка на пост выше
|
|
|

01.05.2009, 15:53
|
|
Участник форума
Регистрация: 10.02.2009
Сообщений: 203
С нами:
9077779
Репутация:
379
|
|
В общем в инсте проблема у меня, надо сдать лабу и она на делфи, и его мы должны сами изучить
Вот хочу попросить что бы кто-нибудь смог написать программку по нему..
Она должна быть простенькой т.к нам дали делфи на самообучение.
*******************
Вычислить площадь плоской фигуры, заключенной между дугами кривых: y(x) = -Ln(x) и y(x) = R-x
При каком значении R площадь этой фигуры не превышает единицы
|
|
|

03.05.2009, 11:46
|
|
Новичок
Регистрация: 15.05.2008
Сообщений: 9
С нами:
9468639
Репутация:
1
|
|
Подскажите пожалуйста что здесть не так?
PHP код:
#include <graphics.h> //Подключение библиотек
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <dos.h>
#define mash 40 //Масштаб - количество пикселей равное числу 0.2
#define PI 3.141592653 //Первая математическая константа(Число Пи(^_^))
#define angle5 0.0872665 //Пять градусов в радианах
#define step 0.0001 //Шаг перебора значений переменной t, при маленьких значениях увеличивается время работы, при больших целостность графика теряется
double A,B,C,D,x1,y1,x2,y2,t,anglex=0.0;
int x,y,maxx,maxy,pmsh=0,sdx=0,sdy=0,g=0;
void drawgraph();
void drawset(){ //Начало функции построения системы координат
int i;
clrscr(); //очистка текстового экрана (Возвращение каретки в начало)
setfillstyle(SOLID_FILL, 0);
bar(0,0,maxx,maxy); //Очистка графического экрана
printf("\n\n\n y=%.2lf*(exp(x/2)+exp(-x/2))/2",A); //Zamenit' na viravnivanie po pravoi stenke!!!
if(A>0.0)
printf("\n max - none\n min = %.2lf",A);
if(A<0.0)
printf("\n max = 0.0\n min = 0.0");
if(A==0.0)
printf("\n max = %.2lf\n min - none",A);
//printf("\n\t\t\t\t\t y=sin(%.2lf+%.2lf*t)*cos(%.2lf+t)",A,B,D);
settextstyle(SMALL_FONT, HORIZ_DIR, 4); //Выбор шрифта
setlinestyle(SOLID_LINE, 1, 1); //Выбор пунктирной линии
if(g%2==0){
line(0,maxy/2,maxx,maxy/2); //Построение линий координатной сетки
line(maxx/2,0,maxx/2,maxy);
moveto(maxx/2+5,maxy/2+5);
outtext("0");
outtextxy(maxx/2-10,5,"Y");
outtextxy(maxx-14,maxy/2-14,"X");
for(i=1;(i*mash<maxx/2)||(i*(mash+pmsh)<maxy/2);i++){ //Цикл построение шкалы
line(maxx/2+i*(mash+pmsh),maxy/2+5,maxx/2+i*(mash+pmsh),maxy/2-5); //Деления на положительной части шкалы абсцисс
line(maxx/2-i*(mash+pmsh),maxy/2+5,maxx/2-i*(mash+pmsh),maxy/2-5); //Деления на отрицательной части шкалы абсцисс
line(maxx/2-5,maxy/2-i*(mash+pmsh),maxx/2+5,maxy/2-i*(mash+pmsh)); //Деления на положительной части шкалы ординат
line(maxx/2-5,maxy/2+i*(mash+pmsh),maxx/2+5,maxy/2+i*(mash+pmsh)); //Деления на отрицательной части шкалы ординат
moveto(maxx/2+i*(mash+pmsh)+5,maxy/2+5); //Нанесение значений шкалы х
switch(i){
case 1: outtext("1");break;
case 2: outtext("2");break;
case 3: outtext("3");break;
case 4: outtext("4");break;
case 5: outtext("5");break;
case 6: outtext("6");break;
case 7: outtext("7");break;
case 8: outtext("8");break;
}
moveto(maxx/2-i*(mash+pmsh)+5,maxy/2+5); //Нанесение значений шкалы х
switch(i){
case 1: outtext("-1");break;
case 2: outtext("-2");break;
case 3: outtext("-3");break;
case 4: outtext("-4");break;
case 5: outtext("-5");break;
case 6: outtext("-6");break;
case 7: outtext("-7");break;
case 8: outtext("-8");break;
}
moveto(maxx/2+5,maxy/2-1+i*(mash+pmsh)); //Нанесение значений шкалы у
switch (i){
case 1: outtext("-1");break;
case 2: outtext("-2");break;
case 3: outtext("-3");break;
case 4: outtext("-4");break;
case 5: outtext("-5");break;
case 6: outtext("-6");break;
case 7: outtext("-7");break;
case 8: outtext("-8");break;
case 9: outtext("-9");break;
case 10: outtext("-10");break;
case 11: outtext("-11");break;
}
moveto(maxx/2+6,maxy/2+1-i*(mash+pmsh)); //Нанесение значений шкалы у
switch (i){
case 1: outtext("1");break;
case 2: outtext("2");break;
case 3: outtext("3");break;
case 4: outtext("4");break;
case 5: outtext("5");break;
case 6: outtext("6");break;
case 7: outtext("7");break;
case 8: outtext("8");break;
case 9: outtext("9");break;
case 10: outtext("10");break;
case 11: outtext("11");break;
}
} //Конец цикла
}
drawgraph();
} //Конец функции
void drawgraph(){ //Функция построения графика
t=maxx/(2*(mash+pmsh));
for(x1=-t;x1<=t;x1+=step){ //Перебор ОДЗ t
y1=A*(exp(-x1/2)+exp(x1/2))/2; //Получение координаты х
x2=x1*cos(anglex)-y1*sin(anglex); //Смещение координат в случае
y2=y1*cos(anglex)+x1*sin(anglex); //Поворота графика на угол anglex
x =x2*(mash+pmsh)+sdx; //Координата х с учетом возможного сдвига и масштаба
y =-y2*(mash+pmsh)+sdy; //Координата у с учетом возможного сдвига ,масштаба и добавочного масштаба для у
putpixel(maxx/2+x,maxy/2+y,5); //Нанесение полученной точки на экран
}
//drawset(); //Вызов функции drawset
} //Конец функции построения графика
void main(){ //Основная функция
char ci;
int gdriver = DETECT, gmode, errorcode;
clrscr();
printf("\nGraffic y=A*(exp(x/2)+exp(-x/2))/2\n");
printf("\nEnter A:");
while(scanf("%lf", &A)!=1){ //Ввод коэффициентов графика
printf("\nError! Re-enter please> ");
ci='c'; while((ci!='\n') && (ci!=EOF)) ci=getchar();}
clrscr();
printf("\nControl:\n\nQ - quit\nG - hide set\n\nA - dicrease \"y\" scale\nS - increase \"y\" scale\nD - reset \"y\" scale\n\nZ - rotate -5gr\nX - rotate 5gr\nC - reset rotate angle");
printf("\n\n2 - y-15pix\n8 - y+15pix\n4 - x-15pix\n6 - x+15pix\n5 - reset");
getch();
initgraph(&gdriver, &gmode, "C:\\BORLANDC\\BGI"); //Инициализация графического режима
errorcode = graphresult();
if (errorcode != grOk){
printf("Graphics error: %s\n", grapherrormsg(errorcode)); //Вывод сооьветствующего сообщения в случае ошибки инициализации графического режима
printf("Press any key to halt:");
getch();
exit(1);}
maxx=getmaxx();//Получение разрешения экрана
maxy=getmaxy();
while(1){ //Вывод графика и ожидание действий
drawset();
ci=getch();
if(ci=='q') break;
if(ci=='g') g++;
if(ci=='x') anglex+=angle5;
if(ci=='z') anglex-=angle5;
if(ci=='a') pmsh-=(mash+pmsh)/10;
if(ci=='s') pmsh+=(mash+pmsh)/10;
if(ci=='c') anglex=0;
if(ci=='d') pmsh=0;
if(ci== 50) sdy+=15;
if(ci== 52) sdx-=15;
if(ci== 53) sdy=sdx=0;
if(ci== 54) sdx+=15;
if(ci== 56) sdy-=15;}
closegraph(); //Закрытие видеорежима
} //Конец программы
Помогите, заранее благодарен! Спасибо!
|
|
|

03.05.2009, 13:21
|
|
Участник форума
Регистрация: 13.11.2008
Сообщений: 131
С нами:
9205656
Репутация:
52
|
|
Такая задача: (Паскаль)
Два прямоугольника со сторонами, непараллельными осям экрана, заданы координатами трех последовательных вершин. Выяснить, находится ли какой-нибудь из прямоугольников в средине другого..
Заранее благодарен за помощь!
|
|
|

03.05.2009, 16:14
|
|
Участник форума
Регистрация: 29.07.2007
Сообщений: 124
С нами:
9886838
Репутация:
60
|
|
[pascal]
собственно мессага: ввод массива чисел(размер не менее 15), ввод числа и поиск его в массиве, если значений несколько-опр. их количество и порядковые номера, если значений нет-поиск ближайшего большего
заранее спасибо( + за мной не заржавеет  )
|
|
|

03.05.2009, 19:16
|
|
Участник форума
Регистрация: 30.03.2007
Сообщений: 131
С нами:
10061036
Репутация:
127
|
|
C++
Последний раз редактировалось TR0J@N; 03.05.2009 в 19:18..
|
|
|

03.05.2009, 20:43
|
|
Участник форума
Регистрация: 25.05.2007
Сообщений: 290
С нами:
9980798
Репутация:
435
|
|
Сообщение от MRAK9
[pascal]
собственно мессага: ввод массива чисел(размер не менее 15), ввод числа и поиск его в массиве, если значений несколько-опр. их количество и порядковые номера, если значений нет-поиск ближайшего большего
заранее спасибо( + за мной не заржавеет  )
собственно код: (он на дельфи но переделаешь в лёт )
PHP код:
program Project1;
uses
SysUtils;
var
s: array [0..14] of integer;
i,x,j,b: integer;
begin
writeln('********************************'+#10+
'Vvedie element`i massiva:');
for i:=0 to 14 do
begin
read(s[i]);
end;
writeln('________________________________' + #10 +
'Massiv zapolnen do 15 znachenii' + #10 +
'Vvedite chiclo poiska v massive');
read(x);
writeln('################################' + #10);
b:=0;
for i:=0 to 14 do
begin
if s[i]=x then
begin
writeln('> ='+IntToStr(i));
b:=b+1;
end;
end;
if b>0 then
begin
writeln('Odinakovih elementov:' + IntToStr(b));
end
else
begin
x:=s[0];
for i:=1 to 14 do
begin
if s[i]>x then
begin
x:=s[i];
b:=i;
end;
end;
writeln('Odinakovih elementov nety:' + #10 +
'Samii Bolshoi Element:' + IntToStr(x) + #10 +
'On stoit v massive pod nomerom: '+IntToStr(b));
end;
read(x);
end.
i,x,j,b: integer;-Не обращай на j внимание, просто мега обфускация.
Последний раз редактировалось Flame of Soul; 03.05.2009 в 20:52..
|
|
|

04.05.2009, 22:56
|
|
Участник форума
Регистрация: 29.07.2007
Сообщений: 124
С нами:
9886838
Репутация:
60
|
|
Flame of Soul
+ поставил, хоть и сделал немного не то...(следовало найти не самое большое значение, а БЛИЖАЙШЕЕ большое)
|
|
|

04.05.2009, 02:45
|
|
Участник форума
Регистрация: 26.11.2008
Сообщений: 158
С нами:
9187097
Репутация:
158
|
|
2 TR0J@N
2.
Код:
#include<stdio.h>
#include<conio.h>
#include<math.h>
void main()
{
clrscr();
float A,B,C,S,G;
float G1,P,R,R1;
printf("Input A,B,S -> ");
scanf("%f%f%f",&A,&B,&S);
G=2*S/(A*B);
G1=sqrt(1-G*G);
C=sqrt(A*A+B*B-2*A*B*G1);
P=A+B+C;
R=A*B*C/(4*S);
R1=2*S/P;
printf(" P = %.2f\n R = %.2f\n R1 = %.2f\n",P,R,R1);
getch();
}
3.
Код:
#include<stdio.h>
#include<conio.h>
#include<math.h>
void main()
{
clrscr();
float a,b,c,d,y,x;
printf("BBegu c, d, b, x -> ");
scanf("%f%f%f%f",&c,&d,&b,&x);
a=c*d/(c*c-d*d);
printf("%f\n",a);
if(a<5)
y=a+b/sqrt(25+x*x);
else
y=b*cos(a);
printf("y = %.2f\n",y);
getch();
}
Последний раз редактировалось fker; 05.05.2009 в 05:38..
Причина: ошибка в 3 проге
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|