Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.11.2008, 13:55   #1
Chel
Пользователь
 
Регистрация: 21.05.2008
Сообщений: 22
Вопрос задачи на Паскале

Народ, помогите, пожалуйста решить/доделать задачки...

в общем вот 1 задача:

Цитата:
1. Пересечение окружностей
На плоскости даны две окружности. Требуется проверить, пересекаются ли они.
Входные данные
Входной файл INPUT.TXT состоит из двух строк. На каждой строке записана информация об одной окружности – координаты ее центра x и y (целые числа, по модулю не превосходящие 5000) и радиус (целое число 1 ≤ r ≤ 1000).
Выходные данные
В выходной файл OUTPUT.TXT выведите «YES», если окружности пересекаются, и «NO» в противном случае.
Примеры
№****INPUT.TXT****OUTPUT.TXT
1******0 0 2*********YES
*******0 3 2
2******1 1 1********* NO
*******4 4 1
вот мое решение, но оно не правильно работает...
Цитата:
program z;
var x,x1,y,y1,y2,r,r1:integer;
i,d:integer;
str,str2:string;
f,f1:text;
begin
assign(f,'C:\LABA1\input.txt');
reset(f);
read(f);
read(f,x);
read(f,y);
readln(f,r);
read(f,x1);
read(f,y1);
readln(f,r1);
close(f);
if (r>=1)and(r<=1000)and(r1>=1)and(r1< =1000)and (abs(x)<5000)and(x1<5000)and(abs(x) <5000)and (y1<5000)and(abs(y1)<5000)
then
begin
d:=(sqr(x1-x)+sqr(y1-y));
assign(f,'C:\LABA1\output.txt');
rewrite(f);
if(d<=r+r1) then
write(f,'Yes')
else write(f,'No');
close(f);
end;
end.
и еще две задачки..

Цитата:
Вычеркнуть из записи элементов линейного массива цифры, совпадающие с номером элемента (номер от 0 до 9).
и

Цитата:
Дано целое неотрицательное число К не превышающее миллиона.. Напечатать фразу «К ворон» русскими словами.
заранее благодарен!
Chel вне форума Ответить с цитированием
Старый 07.11.2008, 15:51   #2
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

По первой задаче, не понял, зачем ты пропускаешь одно число, ведь в файле всего 6 чисел в двух строках и лишнего ничего нет. Длину считаешь неправильно, полистай геометрию, ну и так, по мелочам исправил.
Код:
program z; 
uses crt;
var x,x1,y,y1,y2,r,r1,i:integer;
    d:real;
str,str2:string;
f,f1:text;
begin
clrscr;
assign(f,'input.txt');
reset(f);
read(f,x);
read(f,y);
readln(f,r);
read(f,x1);
read(f,y1);
readln(f,r1);
close(f);
assign(f,'output.txt');
rewrite(f);
if (r>=1)and(r<=1000)and(r1>=1)and(r1<=1000)and (abs(x)<5000)
and(abs(x1)<5000)and(abs(y)<5000)and (abs(y1)<5000)
then d:=sqrt(sqr(x1-x)+sqr(y1-y))
else
   begin
     writeln('V faile nedopustimye dannye!');
     readln;
     halt;
   end;
if(d<=r+r1) then
write(f,'Yes')
else write(f,'No');
close(f);
write('Fail zapisan!');
readln
end.
puporev вне форума Ответить с цитированием
Старый 07.11.2008, 16:41   #3
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Вторую задачу видимо с помощью строк надо решать. Вот один из вариантов решения. По условию вроде надо просто вычеркнуть цифры без преобразования числа, например было 1023, убрали 1, будет 023. Если надо преобразовывать числа, тогда в конце строку надо снова преобразовать в число, выведет 23.
Код:
uses crt;
const n=9;
var a:array[0..n]of integer;
    s,s1:string;
    i,j,t,c:integer;
begin
clrscr;
randomize;
for i:=0 to n do
  begin
   a[i]:=random(10000)+1000;
   write(a[i]:7);
  end;
writeln;
for i:=0 to n do
  begin
   str(i,s);  //превращаем в строку индекс
   str(a[i],s1);  //тоже с числом
   for j:=length(s1)downto 1 do
   if s1[j]=s then delete(s1,j,1); //ищем в числе индекс, если находим, удаляем
   write(s1:7); //выводим массив в новом виде
  end;
readln
end.
puporev вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задачи в Паскале. fairy_cookies Помощь студентам 3 02.03.2009 20:58
3 задачи на паскале poluprogramist Помощь студентам 4 24.05.2008 16:27
Задачи в Паскале vitekbest Помощь студентам 1 06.04.2008 19:35