Кому порешать задачи - пишите сюда

Glu4it

Member
вот почти решил свою задачу, как теперь с заливкой помогите дописать, ато там белые квадраты остаются и чтоб за границы экрана не выходило. помогите, вот код:
Uses crt,Graph;

Var Gd, Gm : Integer;
x,y,x1,y1,n,z,c : Integer;

Begin
Gd:=Detect;
InitGraph(Gd, Gm, '');
If GraphResult <> grOk Then Halt(1);

n:=1; y:=200;y1:=480;
n:=1; x:=200;x1:=640;
repeat
if y1<10 then begin n:=0; y:=30; end;
if y1>350 then begin n:=1; y:=-10; end;
if n=1 then y:=y-10;
if n=0 then begin y:=y+10; end;
if x1<10 then begin n:=0; x:=30; end;
if x1>539 then begin n:=1; x:=-10; end;
if n=1 then x:=x-20;
if n=0 then x:=x+20;
setcolor(15);
y1:=y1+y;
x1:=x1+x;
z:=x1+100;
c:=y1+100;
Bar3D(x1, y1, z, c, 20, TopOn);
Bar3D(x1, y1, z, c, 20, TopOff);
delay(10000);
setcolor(black);
Bar3D(x1, y1, z, c, 20, TopOn);
Bar3D(x1, y1, z, c, 20, TopOff);
until keypressed;

CloseGraph;
End.
 
Останнє редагування:

Їжак

New Member
Язык : паскаль
тема:строки
Дана последовательность, содержащая от 2 до 50 слов, в каждом из которых от 1 до 8
строчных латинских букв; между соседними словами - не менее одного пробела, за последним
словом - точка. Напечатать те слова последовательности, где в слове нет повторяющихся букв.
уже заманалса помогите пожалуйста))
 

SHARK

Member
Помогите пожалуйста решить

Язык: Pascal
Тема: Обработка елементов массива

Задача1: Дан массив все его елементы увеличить в 2раза
Задача2: Определить сумму квадратов всех елементов массива
 
Помогите пожалуйста решить

Язык: Pascal
Тема: Обработка елементов массива

Задача1: Дан массив все его елементы увеличить в 2раза
Задача2: Определить сумму квадратов всех елементов массива
1 for i:=(номер первого елемента масива) to (номер 2го елемента масива ) do
begin
(имя масива):=(имя масива)*2;
end;
2
(переменная сума квадратов ):=0;
for i:=(номер первого елемента масива) to (номер 2го елемента масива ) do
begin
(переменная сума квадратов ):=(переменная сума квадратов)+sqr((имя масива));
end;

шот типа того
 

Cris

Member
1 for i:=(номер первого елемента масива) to (номер 2го елемента масива ) do
begin
(имя масива):=(имя масива)*2;
end;
2
(переменная сума квадратов ):=0;
for i:=(номер первого елемента масива) to (номер 2го елемента масива ) do
begin
(переменная сума квадратов ):=(переменная сума квадратов)+sqr((имя масива));
end;

шот типа того

представим код)) :
#1
Код:
program proga;
var i,k:longint;
      massiv:array[1..100] of  longint;
begin
....//ввод масива
k:=10; //количество елементов в масиве
for i:=1 to k do
massiv[i]:=massiv[i]*2;
...//вывод масива
end.
#2
Код:
program proga;
var i,k,sum:longint;
      massiv:array[1..100] of  longint;
begin
....//ввод масива
k:=10; //количество елементов в масиве
for i:=1 to k do
sum:=sum+sqr(massiv[i]*2);
...//вывод масива
end.
 

rizo

New Member
Язык Си.
Есть такая функция

void Add(char eng[], char ukr[])
{
tree *q;
q=(words*)malloc(sizeof(words));

q->left=NULL;
q->right=NULL;
strcpy(q->eng,eng);
strcpy(q->ukr,ukr);
place(q,&head);

}
которая добавляет слово в базу данных словаря.
А есть такая
char *Find(char eng[],tree *xz)
{
if (xz==NULL) return "ERROR";

int K=strcmp(eng,xz->eng);
if (K==0) return xz->ukr;
if (K>0) return Find(eng,xz->right);
else return Find(eng,xz->left);
}
которая ищет елемент в базе. Как реализовать роботу с файлом? Нужно что бы запись ввелась в файл и поиск был в файле.

Сама структура бинарного дерева

typedef struct words {
char eng[15], ukr[15];
words *left, *right;
} tree;

tree *head=NULL;

Помогите пожалуйста!!!))
 

dreamer

Member
Язык Си.
Как реализовать роботу с файлом? Нужно что бы запись ввелась в файл и поиск был в файле.

Помогите пожалуйста!!!))
Ну вы немного ошиблись темой – тут решают задачи а вам нужно помочь советом.
Если элементы из дерева не удаляются а только добавление и поиск то могу предложить хранить узлы не в памяти используя указатели а в файле, используя смещения в нем. Собственно тогда вместо работы с указателями придется каждый раз загружать узел из файла:
Код:
typedef struct words {
    char eng[15], ukr[15];
    long int leftOffset = -1, rightOffset = -1;
} tree;

tree readNodeFromFile(FILE* file, int offset) {
    fseek(file, offset, SEEK_SET);
    tree node;
    fread(&node, sizeof(node), 1, file);
    return node;
}

void updateNodeInFile(FILE* file, int offset, tree *node) {
    fseek(file, offset, SEEK_SET);
    fwrite(&node, sizeof(node), 1, file);
}
Собственно при вставке придется записывать узел в конец файла и изменять смещения детей по тому же алгоритму как у тебя там, записывая новые значения опять в файл по смещениям.
Работать будет значительно медленнее.
 

Datka

New Member
Помогите решить задачу:
Маленькая Моська бежыт за слоном со скоростью V1 м/мин., а слон убегает от нее со скоростью V2 м/мин. у Моськи скорость через каждые 10 минут падает на h , исполнится ли желание моськи и через сколько времени.(паскаль)
 

dreamer

Member
Помогите решить задачу:
Маленькая Моська бежыт за слоном со скоростью V1 м/мин., а слон убегает от нее со скоростью V2 м/мин. у Моськи скорость через каждые 10 минут падает на h , исполнится ли желание моськи и через сколько времени.(паскаль)
Совсем разленились, такие простые задачки самим решать.
Код:
положение_моськи := начальное_положение_моськи;
положение_слона := начальное_положение_слона;
пока (моська не догнала слона) и (моська быстрее слона) делать
    увеличить положение_моськи на скорость_моськи*10 минут;
    увеличить положение_слона на скорость_слона*10 минут;
    уменьшить скорость_моськи на h;
конец;
вывести догнала ли моська слона;
 

Stasian

New Member
Помогите пожалуйста решить задачку!
Pascal!
адание в файле ниже, на нахождение суммы!
 

Вкладення

  • 48.5 КБ Перегляди: 216
Зверху