Перейти к содержанию

Задачи на Pascal/Delphi (РЕШЕНИЕ)


Рекомендуемые сообщения

L0K1 писал:

Или вообще учите C....

тут (насколько я понимаю) студенты спрашивают советов по лабам на TP7 (BP7) и Delphi. другие языки тут воще не причем.

Ссылка на комментарий

Помогите, пожалуйста!!! Необходимо написать программку на Delphi для реализации задачи о планировании производства, Симплекс методом. Кто знает эту замуту, пожалуйста, помогите!!!

Ссылка на комментарий

Помогите решить задачу плз:

Парламент состоит из N делегатов. Делегаты

должны разделиться на группы (фракции), количество депутатов

в каждой группе отличается от количества депутатов в любой дру-

другой группе. Каждый день каждая фракция посылает одного пред-

представителя в президиум. Парламент начинает работу в том случае,

когда состав президиума отличен от составов президиумов пре-

предыдущих дней.

Составьте алгоритм—программу, которая бы определяла опти-

оптимальное число фракций и количество делегатов в каждой из них

так, чтобы парламент мог работать как можно дольше. Число де-

делегатов задается в исходном текстовом файле.

Ссылка на комментарий
  • 3 недели спустя...

Помогите пожалуйста решить простенькую задачку на Паскале, задали сестре в школе а сам забыл немного логику.

4 марсианки оказались на Земле на вопрос о возрасте они ответили что

1) Ми - 22 года Ме - 21 года

2) Мо - 19 лет Ми - 21 год

3) Ма - 21 год Мо - 18 лет

Причём все марсианки разных возрастов, в каждом, в каждом случае есть правда и есть ложь.

Ссылка на комментарий

если через 3 массива(записей(3 поля в каждом: имя и возраст и булиновское поле )) (ну это канешь как кому удобно). Ищешь среди всех записей записи с оригинальными именами. Если нашёл то в этой записи в 3м поле ставишь тру. Далее как нашёл все записи с оригинальными именами, то смотришь те массивы в которых есть оригинальные имена(тоесть в одной записи встречается тру в третьем поле), значит другие записи в этом массиве ложны, ищешь теперь запись которая по имени совпадает с ложной. и записываешь в 3 поле найденой записи тру. После того как сделаешь такие действия с каждой ложной записью, то будут найдены все ложные и истинные записи. Канешь этот алгоритм не для общего случая, но для этой задачи сойдёт

Ссылка на комментарий

Vanixя почти так же сделал, НО этозадачка для 11 класса и прислове масси вы на лице сесты велезло недоумение, а привиде программы удивление достигло высшей точки. прошли последнее циклы и за массивы врядли возьмутся, программа у них в школе дебильная. Надо программку в более простом виде, а то препод может понять что не она писала.

Ссылка на комментарий
  • 1 месяц спустя...

Помогите с задачей: стройте длиные ряды из ящиков. Перемещение и передвижение ящиков - клавиши 4 или 5 для прыжка -1,2,3. если прыгнуть на падующий ящик он исчезнет.

Предусмотреть в игре возможность просмотра результатов, остановки и начало новой игры.

Ссылка на комментарий
курсач чтоли?

Либо курсач, либо гражданин захотел, чтоб ему сделали личную игрушку с таким незамысловатым сюжетом.. Чтоб занять, чем - то свободное время.. Назовем ее BooM II.

Востание ящиков..

Ссылка на комментарий
  • 3 недели спустя...

Здравствуйте . Надо решить следующую задачу. Очень надо!!!

Задача:

Текстовый файл содержит последовательность целых чисел –

веса элементов : а1,а2…аn . Надо составить алгоритм – программу

деления этих элементов на две группы так, что бы общие веса двух групп

были максимально близкими к руг другу . Результаты расчетов сохранить в текстовом файле . Исходные данные представлены в тестовом файле со следующей структурой.

Первая строка : n- количество чисел . Следующие строки содержат веса элементов aj.

Пример файла исходных данных :

5

6 3 1 4 5

Пример файла выходных файлов :

6 3 1 - первая группа.

4 5- вторая группа .

Ссылка на комментарий

переведите плз На паскаль

#include

#include

#include

#define MAX 30000

struct List{

int v;

int w;

struct List *next;

};

struct Graph{

int h;

int p;

struct List *first;

struct List *last;

}*G;

int N;

int V;

void Ford();

void BelmanKalab();

void PathFord(int );

void Menu();

void ListAdj();

void FreeList();

void main()

{

Menu();

}

void BelmanKalab()

{

int i,j,k;

struct List *c;

int **M=(int **)malloc(N*sizeof(int *));

int *VK=(int *)malloc(N*sizeof(int ));

int *VK_1=(int *)malloc(N*sizeof(int ));

int *t,f=1;

int *P=(int *)malloc(N*sizeof(int ));

for(i=0;i

M=(int *)malloc(N*sizeof(int));

for(i=0;i

for(j=0;j

M[j]=(i==j)?0:MAX;

for(i=0;i

c=G.first;

while(c!=G.last){

M[c->v]=c->w;

c=c->next;

}

}

printf("Enter final vertex: ");

scanf("%d",&V);

V--;

for(i=0;i

VK_1=M[V];

P=-1;

}

while(f){

for(i=0;i

VK=MAX;

for(i=0;i

for(j=0;j

if(i!=j && VK>VK_1[j]+M[j]){

VK=VK_1[j]+M[j];

P=j;

}

VK[V]=0;

for(i=0;i

;

f=(i==N)?0:1;

t=VK_1;

VK_1=VK;

VK=t;

}

for(i=0;i

printf("\nPath from %d to %d is ",i+1,V+1);

if(VK_1==MAX)

printf("not exist.");

else {

for(k=i,j=0;j

printf("->%d",k+1);

k=P[k];

}

printf("->%d",V+1);

printf(". It has length %d.",VK_1);

}

}

for(i=0;i

free(M);

free(P);

free(M);

free(VK);

free(VK_1);

}

void Ford()

{

int i,f=1;

struct List *c;

if(G==NULL)

return;

for(i=0;i

G.p=-1;

G.h=MAX;

}

printf("Enter start vertex: ");

scanf("%d",&V);

G[--V].h=0;

while(f){

f=0;

for(i=0;i

c=G.first;

while(c!=G.last){

if(G[c->v].h>G.h+c->w){

G[c->v].h=G.h+c->w;

G[c->v].p=i;

f=1;

}

c=c->next;

}

}

}

for(i=0;i

printf("\nPath from %d to %d is ",V+1,i+1);

if(G.h==MAX)

printf("not exist.");

else{

PathFord(i);

printf(". It has length %d.",G.h);

}

}

}

void PathFord(int v)

{

if(v!=V)

PathFord(G[v].p);

printf("->%d",v+1);

}

void Menu()

{

int i;

char ch;

clrscr();

printf("1.To enter the graph\n");

printf("2.Minimum path by Ford's algorithm\n");

printf("3.Minimum path by Belman-Kalab's algorithm\n");

printf("4.Exit\n");

do

ch=getch();

while(ch<'0' || ch>'5');

clrscr();

switch (ch)

{

case '1': ListAdj();break;

case '2': Ford();getch();break;

case '3': BelmanKalab();getch();break;

case '4': FreeList();return;

}

Menu();

}

void ListAdj()

{

int i,v,w;

struct List *c;

if(G)

FreeList();

printf("Enter number of vertexes of graph: ");

scanf("%d",&N);

G=(struct Graph *)malloc(N*sizeof(struct Graph));

printf("\n");

for(i=0;i

printf("%d->",i+1);

G.first=(struct List*)malloc(sizeof(struct List));

G.last=G.first;

G.last->next=NULL;

G.last->v=-1;

scanf("%d",&v);

while(v){

scanf("%d",&w);

G.last->v=v-1;

G.last->w=w;

G.last->next=(struct List*)malloc(sizeof(struct List));

G.last=G.last->next;

G.last->next=NULL;

G.last->v=-1;

scanf("%d",&v);

}

}

}

void FreeList()

{

struct List *c,*t;

while(N--){

c=G[N].first;

while(c!=G[N].last){

t=c->next;

free©;

c=t;

}

}

free(G);

}

Ссылка на комментарий

X-ray

program kursa4;

uses crt;

var a,q1,q2:array[1..1000]of integer;

n,i,V1,V2,r1,r2,k:integer;

procedure Qsort(q,p:integer);

var x,l,r,w:integer;

begin

r:=p;

l:=q;

x:=a[(l+r)div 2];

while l

while a[l]>x do l:=l+1;

while a[r]

if l<=r then begin

w:=a[l];

a[l]:=a[r];

a[r]:=w;

l:=l+1;

r:=r-1;

end;

end;

if l

if r>q then Qsort(q,r);

end;

procedure vvod;

begin

assign(input,'kursa.txt');

reset(input);

readLn(n);

for i:=1 to n do read(a);

end;

begin

assign(output,'kursa_OUT.txt');

rewrite(output);

vvod;

Qsort(1,n);

v1:=0;

v2:=0;

k:=1;

while k<=n do begin

if v1>v2 then begin

r2:=r2+1;

q2[r2]:=a[k];

v2:=v2+a[k];

end else begin

r1:=r1+1;

q1[r1]:=a[k];

v1:=v1+a[k];

end;

k:=k+1;

end;

write('VES1=',v1,' I: ');

for i:=1 to r1 do write(q1,' ');

writeln;

write('VES2=',v2,' II: ');

for i:=1 to r2 do write(q2,' ');

end.

там файл создаш с именем "kursa.txt"

туда запишеш:

14

9 1 8 4 2 5 2 5 4 7 3 7 11 13

(конечно можеш и другое записать)

300 рублей с тебя=)

Ссылка на комментарий

Задача в ПАСКАЛЕ:

А точнее нужно составить программу. Вот задача:

Даны 4 числа (A,B,C,D) Если A больше В и больше D тогда вычисляем произведение C и D. Если В меньше С и больше D , тогда на экран выводим квадратный корень из А-С (А отнять С), если С больше А, больше В но меньше D тогда выводим 2D. В противном случае выводим значение A,B,C,D

Добавлено спустя 36 секунд:

Помогите плиз

Ссылка на комментарий

примерно так, перепроверь

  readln(A);  readln(;  readln(C);  readln(D);
if (A > and (A > D) then
writeln(C * D)
else if (B < C) and (B > D) then
writeln(SQR(A - C))
else if (C > A) and (C > and (C < D) then
writeln(2 * D)
else
writeln(A, B, C, D);

Ссылка на комментарий

внесу маленькие изменения в код bayarookie

последнюю строку следует изменить на

  writeln(A,'; ', B,'; ', C,'; ', D);

иначе подряд все числа напечатает без пробелов. получится белиберда =)

и еще первые 4 оператора можно превратить в один

readln(A,B,C,D);

но на будущее хочу сказать, что если считываете строку (Tstring), то придется писать все операторы считывания по отдельности.

ну и для красоты можно форматный вывод корня сделать

    writeln(SQR(A - C):5:3 )

означает что будет показано только 3 знака после запятой (XXXX.XXX), в ином случае выведется что нить примерно так

0.12 E01 =)

Добавлено спустя 2 минуты 16 секунд:

Evgen231

условия не понятны. прыгать на падающий ящик? )))

Ссылка на комментарий

Помогите плиз, если завтро не сдам, то не поставят текущий контроль... =(

6. Записать нижеследующее высказывание в виде выражения:

Логарифм не вычисляется для нуля и отрицательных чисел.

5. Вычислить значение логического выражения при заданных значениях:

(a and B) or a=0 and c=0 or c>0 or a>c and c>b

a=-1

b=3

c=10

Ссылка на комментарий

Пожалуйста, войдите, чтобы комментировать

Вы сможете оставить комментарий после входа в



Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...