Форум
» Назад на решение задач по физике и термеху
Регистрация | Профиль | Войти | Забытый пароль | Присутствующие | Справка | Поиск

» Добро пожаловать, Гость: Войти | Регистрация
    Форум
    Информационные технологии
        Решение задач на Pascal. Форум 2
Отметить все сообщения как прочитанные   [ Помощь ]
» Добро пожаловать на форум "Информационные технологии" «

Переход к теме
<< Назад Вперед >>
Несколько страниц [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 ]
Модераторы: paradise, KMA
  

Oxik WAR



Новичок


Цитата: Dale написал 30 июня 2009 19:29
Oxik WAR  , задача из той же оперы, что и с распределением студентов
Один из способов решения:
1)Заполняем матрицу 8*8 нулями (типа если ноль, то клетка пуста)
2)for i:=1 to m do begin
  траляля
  end;

Траляля - это определение координат для слона m.

в тряляля определяем координаты:
x:=random(8)+1;
y:=random(8)+1;

Потом проверяем, подходят ли они. (тут надо подумать, как это сделать)
Итак, если на диагоналях нет слонов (т.е. все элементы равны нулю) - присваиваем элементу с координатами x,y значение m.


 помогите с оформлением...  

Всего сообщений: 9 | Присоединился: июнь 2009 | Отправлено: 30 июня 2009 21:26 | IP
Dale



Участник

ponochka  
Например, задача с кольцом
uses crt;
var r1,r2:integer;
begin
writeln('Введите радиус 1');
readln(r1);
writeln('Введите радиус 2');
readln('r2');
write('площадь кольца равна   ');
writeln(abs(2*pi*r1*r1-2*pi*r2*r2));
readkey;
end.

Dale
p:=1;
for i:=1 to  n do p:=p*x[i,3];
writeln(p);
а куда это надо вставлять че то у меня как было неправильно так и осталось?


Вместо
For i:=1 to n do
for j:=1 to n do
if j=3 then
P:=p*x[i;j];

Вообще можете ничего не убирать, а просто написать до этого
p:=1;
Не заданное начальное значение - стандартная ошибка начинающих.
Если все равно будет неправильно, скиньте код  на форум повторно, только поставив пробелы где в квадратных скобках i (т е так: [ i ]), иначе они не отображаются


(Сообщение отредактировал Dale 1 июля 2009 10:41)

Всего сообщений: 139 | Присоединился: май 2009 | Отправлено: 1 июля 2009 9:13 | IP
Dale



Участник

Arturka91  
Я очень плохо разбираюсь в указателях.


(Сообщение отредактировал Dale 1 июля 2009 10:25)

Всего сообщений: 139 | Присоединился: май 2009 | Отправлено: 1 июля 2009 9:16 | IP
Dale



Участник

oxxxik  
Ну так вперед... Создайте заготовку (любую), т.е. начните с чего-нибудь: например, создайте объекты (или объект) корабль, опишите необходимые свойства... Можете написать, какие идеи у вас есть. Я с радостью вам помогу, если вы примете участие в процессе.

Всего сообщений: 139 | Присоединился: май 2009 | Отправлено: 1 июля 2009 9:22 | IP
Dale



Участник

Oxik WAR
Без проблем... если вы определите, каким образом проверить, подходят ли координаты клетки, то есть как перебрать массив по диагоналям, если известны координаты. Надо найти некую закономерность, которая определяет, принадлежит ли клетка диагонали.
Например, если клетка [1,1], то получается одна диагональ:[i,i], где i изменяется от одного до восьми.
Если клетка, скажем, [2,4], то две диагонали:
 первая диагональ - строки от 1 до 6, столбцы от 3 до 8 , то есть
[i,i+2]

ну и тд

В результате нужна общая закономерность, чтобы в зав. от координат клетки x и y мы могли написать
f:=false;
for i:=f(x,y) to f(x,y) do if mas[ f(i,x,y),f(i,x,y) ]>0 then f:=true;
for i:=f(x,y)  to f(x,y) do if mas[f(i,x,y),f(i,x,y]>0 then f:=true;


(Кстати, если не найдется закономерность, можно использовать метод "лома" - записать для каждой клетки, что перебирать. Но в этом случае, с учетом того, что клеток у нас 8*8=64, плюс для каждой клетки от 8 до 16 комбинаций, получится примерно 320 строчек)

Всего сообщений: 139 | Присоединился: май 2009 | Отправлено: 1 июля 2009 9:49 | IP
enigma



Новичок

1) Вычислить, принадлежит ли точка M(x,y) четырехугольнику с координатами
вершин A(0,4), B(&#8722;4,0) , C(0,&#8722;4), D(4,0) .


2) Вычислить длину стороны a и площадь S десятиугольника, который или вписан в
окружность с радиусом R, или описан вокруг нее.

3) В одномерном массиве все положительные элементы увеличить в три раза, а все
отрицательные элементы уменьшить в восемь раз.


4) В первом одномерном массиве найти все нечетные элементы, во втором
одномерном массиве найти все четные элементы и из них сформировать
одномерный массив.


5) В двухмерном массиве, который имеет одинаковое количество столбцов и строк,
поменять местами элементы, расположенные симметрично относительно диагонали, противоположной главной.


6) Задана запись, имеющая три поля: первое – площадь нижнего основания
усеченного конуса, второе – площадь верхнего основания усеченного конуса,
третье – высота усеченного конуса. Найти объем и площадь всей поверхности
такого усеченного конуса.


7) Задана строка текста длиной не менее двадцати символов. Определить, сколько
пробелов имеется в этой строке текста.


8) Объявить какой-либо заранее созданный файл как нетипизированный и вывести
все четные учетверенные слова (одно учетверенное слово равно восьми байтам) из
этого файла на экран монитора.


9) Заданы два текстовых файла. Поменять содержимое этих файлов местами, при
этом названия файлов должны сохраниться.

Всего сообщений: 1 | Присоединился: июль 2009 | Отправлено: 5 июля 2009 16:12 | IP
Arturka91


Новичок


Цитата: Dale написал 1 июля 2009 9:16
Arturka91  
Я очень плохо разбираюсь в указателях.


(Сообщение отредактировал Dale 1 июля 2009 10:25)


Ничего все равно СПАСИБО!!!

Всего сообщений: 5 | Присоединился: июнь 2009 | Отправлено: 6 июля 2009 9:30 | IP
ksiom



Новичок

enigma
№4

var
 b1,b2:array[1..20]of integer;
 b3:array[1..41]of integer;
 i,k:integer;
begin
 randomize;
 k:=1;

 for i:=1 to 20 do
 begin
   b1[ i ]:=1+random(99);
   b2[ i ]:=1+random(99);
 end;


 for i:=1 to 20 do
   if (b1[ i ]mod 2)<>0 then
   begin
     b3[k]:=b1[ i ];
     inc(k);
   end;

 for i:=1 to 20 do
   if (b2[ i ]mod 2)=0 then
   begin
     b3[k]:=b2[ i ];
     inc(k);
   end;
end.


(Сообщение отредактировал KMA 15 июля 2009 23:16)


(Сообщение отредактировал KMA 15 июля 2009 23:25)

Всего сообщений: 4 | Присоединился: июль 2009 | Отправлено: 15 июля 2009 18:52 | IP
ksiom



Новичок

enigma
№3

var
 b:array[1..20]of real;
 i:integer;
begin
 randomize;
 
 for i:=1 to 20 do
   b[ i ]:=1+random(99);
   
 for i:=1 to 20 do
   if b[ i ]>0 then b[ i ]:=b[ i ]*3
   else b[ i ]:=b[ i ] / 8;

end;

Если не устраивает функция div, то меняй на обычное деление, но придется изменить тип массива.

KMA: читайте задание внимательно (в три раза, а не на 3 и если используете div, то div и пишите, а не деление. В задаче сказано в 8 раз, значит прямая операция деления, поэтому лучше использовать real.

Извини, что поправил пост.

И еще если пишешь i в квадратных кавычках, то пиши так [ i ] или [i ] или [ i] но никак не слитно все. Подробности в правилах.




(Сообщение отредактировал KMA 15 июля 2009 23:24)

Всего сообщений: 4 | Присоединился: июль 2009 | Отправлено: 15 июля 2009 19:14 | IP
MzSpider



Новичок

Enigma
N9
program p9;
var
s,s1 : string;
f , f1 : text;
begin
assign(f,'сюда название первого фаила ');
reset(f);
readln(f,s);
close(f);
assign(f1,'сюда название второго фаила ');
reset(f1);
readln(f1,s1);
close(f1);
assign(f,'сюда название второго фаила ');
rewrite(f);
write(f,s);
close(f);
assign(f1,'сюда название первого фаила ');
rewrite(f1);
write(f1,s1);
close(f1);
end.
PS тупой метод

Всего сообщений: 19 | Присоединился: июль 2009 | Отправлено: 19 июля 2009 8:19 | IP

Эта тема закрыта, новые ответы не принимаются

Переход к теме
<< Назад Вперед >>
Несколько страниц [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 ]

Форум работает на скрипте © Ikonboard.com