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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.02.2012, 23:16   #1
ment9ra
Пользователь
 
Регистрация: 23.02.2012
Сообщений: 12
Вопрос Задача на оператор IF(Delphi)

1. Написать программу, определяющую является сумма четырехзначного числа четной. При вводе числа делать проверку, что введено четырехзначное число.

Во время работы программы экран должен выглядеть следующим образом:

Введите четырехзначное натуральное число

Сумма цифр числа **** равна ****. Это четное/нечетное число

** значения, полученные во время работы программы.


2. Определить принадлежит ли точка с координатами (х, у) заштрихованной области.

ment9ra вне форума Ответить с цитированием
Старый 24.02.2012, 03:01   #2
Heming
Форумчанин
 
Аватар для Heming
 
Регистрация: 06.07.2010
Сообщений: 105
По умолчанию

Вообще парень объясняю один раз и навсегда, если хочешь, что б тебе помогли выкладывай не условие, а свои решения, идеи и мысли и проблемы, то что ты выложил, это просто плевок в лицо форумчан, тебе тут ишачить никто не нанимался, хочешь готовенькое пиши в фриланс и плати денюшку.
Так как я жду пока закачается фильм, и когда-то и я такой был, то по доброте душевной, первую задачу я тебе сделаю, пока фильм не скачался, делается это 5 мин, если даже ты полный 0, то можно было погуглить, это пример самый попсовый.
Код:
Function flag(n:integer):Boolean;
var
k:integer;
begin
k:=0;
while n<>0 do begin
n:=n div 10;             {proverka}
k:=k+1;
end;
if k<>4 then begin
flag:=false;
writeln('Vashe chislo ne 4reh znachnoje');
end;
end;

function suma(n:integer):integer;
var
k,s:integer;
begin
s:=0;
while n<>0 do begin
s:=s+(n mod 10);
n:=n div 10;              {suma tzifr}
end;
suma:=s;
end;

var
n:integer;
begin
repeat
write('Vvedite chislo ');
readln(n);
until flag(n);
if n mod 2=0 then writeln('Ishodnoje chislo chetnoje')
else writeln('Ishodnoje chislo nechetnoje');
writeln('Suma tzifr = ',suma(n));
end.
Писалось в паскале, замените ридлайны на чтение из этидбокса, а врайтланы на вывод в лейблы, забейте все это на кнопку и вуаля(язык тот же Object Pascal)
Код рабочий сам проверял, разбирайся, если процедуры и функции еще не учил, просто скопируй от туда код, и сделай все одним целым, для этого нужно чуть-чуть напрячь попу и при желании вдуматься в код.

Я потратил целые 3 сек, чтобы клацнуть гуглом и сразу найти 100500 ссылок по вашей второй задаче, если когда вы подрастете и у вас будет жена, можна и тут за вас я все делать буду :?
Carpe Diem

Последний раз редактировалось Heming; 24.02.2012 в 03:14.
Heming вне форума Ответить с цитированием
Старый 24.02.2012, 04:58   #3
ment9ra
Пользователь
 
Регистрация: 23.02.2012
Сообщений: 12
По умолчанию

Heming,большое спасибо советы принял .
ment9ra вне форума Ответить с цитированием
Старый 24.02.2012, 07:36   #4
denisbrain
Форумчанин
 
Регистрация: 29.05.2011
Сообщений: 449
По умолчанию

Цитата:
Сообщение от ment9ra Посмотреть сообщение
2. Определить принадлежит ли точка с координатами (х, у) заштрихованной области.

как задается заштрихованная область?!
задания на pascal/delphi ICQ 368254335
Tel +79177425326 mail denis-naymov1985(at)mail.ru login skype denis.new.skype
denisbrain вне форума Ответить с цитированием
Старый 24.02.2012, 09:32   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от denisbrain
как задается заштрихованная область?!
очевидно, что тремя прямыми.
и, т.к. приведена координаткая сетка, то коэффициенты прямых легко посчитать по клеточкам...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 24.02.2012, 10:21   #6
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

нда!
Цитата:
Я потратил целые 3 сек,
молодец, вы потратили целых три секунды чтоб найти это?
Цитата:
Код:
Function flag(n:integer):Boolean;
var
k:integer;
begin
k:=0;
while n<>0 do begin
n:=n div 10;             {proverka}
k:=k+1;
end;
if k<>4 then begin
flag:=false;
writeln('Vashe chislo ne 4reh znachnoje');
end;
end;
господи число четырёх значное! и для этого нужно как минимум 4 раза прогнать цикл?
а так не проще?
Код:
readln (number);
if (number >= 1000) and (number <= 9999) then чётное
else нечётное
соответствеено для суммы тоже можно упростить
Код:
writrlen ('сумма равна ', (number div 1000) + ((number mod 1000) div 10) + ((number mod 100) div 10) + (number mod 10));
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 24.02.2012, 11:16   #7
Heming
Форумчанин
 
Аватар для Heming
 
Регистрация: 06.07.2010
Сообщений: 105
По умолчанию

Цитата:
нда!
Цитата:
Я потратил целые 3 сек,
молодец, вы потратили целых три секунды чтоб найти это?
Перед тем как фыркать, вы бы хотя бы читали внимательно мой пост, а не захлебываясь пеной бежали тайпить сообщение, я потратил 3 секунды чтобы найти множество уже созданных тем и готовых исходников относительно второй задачи, ибо она очень популярна и как правило есть всегда в лабах по изучению Object Pascal.
Цитата:
writrlen ('сумма равна ', (number div 1000) + ((number mod 1000) div 10) + ((number mod 100) div 10) + (number mod 10));
Упростил один.... если у тебя было бы в условии 10-ти значное число, ты б писал весь этот бред до десятого знака? Алгоритм, использованный мной, является базовым и абсолютно примитивным, и работает для n-значного числа, а ваш больше смахивает на то, как школьник на защите лабы, не выучив теор. материал, пытается придумать как выкрутиться.
Цитата:
readln (number);
if (number >= 1000) and (number <= 9999) then чётное
else нечётное
omfg что это????????)))) Возможно вы имели ввиду, then "четырехзначное"..... да безусловно это упрощает данный вариант по проверке на 4-рех значность, согласен, тут я переборщил, че-то меня понесло все циклами делать, но тем не менее он нагляден для понимания цикла while, и является некой прелюдией понимания, к алгоритму по нахождению суммы цифр.
Carpe Diem

Последний раз редактировалось Heming; 24.02.2012 в 11:40.
Heming вне форума Ответить с цитированием
Старый 24.02.2012, 11:24   #8
denisbrain
Форумчанин
 
Регистрация: 29.05.2011
Сообщений: 449
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
очевидно, что тремя прямыми.
и, т.к. приведена координаткая сетка, то коэффициенты прямых легко посчитать по клеточкам...
а если координатами вершин треугольника
то
Цитата:
Лежит ли точка внутри треугольника

Сообщение Eldarik » 19 май 2010, 20:37
Проще всего думается будет реализовать следующим образом:
если заданы координаты трех вершин треугольника A,B,C, и координата точки D, то образуются 3 треугольника ABD, BCD, ACD.
Считаете площади образующихся треугольников и большого треугольника ABC.

Если сумма площадей 3 маленьких и площадь большого треугольника равны, то точка лежит внутри фигуры, если нет, то вне.
написал код

Код:

a,b,c:Tpoint;

Function Dlina(a,b:Tpoint):real;
var x1,y1,x2,y2:real;
begin
x1:=a.x;
y1:=a.y;
x2:=b.x;
y2:=b.y;
   result:=sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1))
end;

Function GetS(a,b,c:Tpoint):real;
var p,r1,r2,r3:real;
begin
 r1:=Dlina(a,b);
 r2:=Dlina(b,c);
 r3:=Dlina(c,a);
 p:=(r1+r2+r3)/2;
 result:=sqrt(p*(p-r1)*(p-r2)*(p-r3));
end;

Function GetTochka(a,b,c:Tpoint;X:Tpoint):boolean;
begin
   result:=abs(GetS(a,b,c)-(GetS(x,b,c)+GetS(a,x,c)+GetS(a,b,x)))<0.0001;
end;
задания на pascal/delphi ICQ 368254335
Tel +79177425326 mail denis-naymov1985(at)mail.ru login skype denis.new.skype
denisbrain вне форума Ответить с цитированием
Старый 24.02.2012, 15:45   #9
ment9ra
Пользователь
 
Регистрация: 23.02.2012
Сообщений: 12
По умолчанию

Heming,ошибка в коде у меня паскаль нашёл только 1 это [Error] Project2.dpr(6): Identifier expected but 'FUNCTION' found ,могу нагуглить но хочу знать что это и почему не работает
Случайно удалил SysUtils; из за этого не работало спасибо !

Последний раз редактировалось ment9ra; 24.02.2012 в 15:56.
ment9ra вне форума Ответить с цитированием
Старый 24.02.2012, 16:16   #10
ment9ra
Пользователь
 
Регистрация: 23.02.2012
Сообщений: 12
По умолчанию

теперь вопрос кто готов помочь еще с лабами надо сделать еще 6 лаб ,как я поманю это будет слишком нагло выложить их все на форум ,сам я прогулял все программирование и сейчас мучаюсь и не знаю как исправлять долги у самого времени нету на изучение делфи с нуля в данный момент изучаю в данный момент язык 1с программирования.
ment9ra вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача на условный оператор(Pascal) Bleq Помощь студентам 3 26.03.2012 14:26
Задача на оператор Repeat. Dimak24 Помощь студентам 3 23.12.2008 15:41