Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 09.06.2011, 12:04   #1 (permalink)
Pchelka
Новичок
 
Регистрация: 27.05.2011
Сообщений: 9
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Операторы цикла

Здравствуйте, помогите пожалуйста решить эту задачу через операторы цикла.
1. Имеется серия изменений элементов треугольника. Группы элементов пронумерованы. В серии в произвольном порядке могут встречаться такие группы элементов треугольника:

1) основании и высота;

2) две стороны и угол между ними ( угол задан в градусах );

3) три стороны.

Составить программу, которая запрашивает номер группы элементов, вводит соответствующие элементы и вычисляет площадь треугольника. Вычисления прекратить, если в качестве номера группы введен 0.

Вот посмотрите у меня решено,но только не через операторы цикла.
Var a,b,c,alpha,h,s:real;
num:byte;
begin
writeln('Esli nugno nayti ploshad treugolnika po:');
writeln(' 1)osnovaniyu i visote najmite |1|');
writeln(' 2)po dwum storonam i uglu najmite |2|');
writeln(' 3)po trem storonam najmite |3|');
writeln('Dlia vihoda najmite |0|');
readln(num);
case num of
0:exit;
1:
begin
write('vvedite dlinu osnovania: ');
readln(a);
write('vvedite visotu: ');
readln(h);
s:=a*h/2;
end;
2:
begin
write('vvedite dlinu odnoy storoni: ');
readln(a);
write('vvedite dlinu drugoy storoni: ');
readln(b);
write('vvedite ugol v radianah: ');
readln(alpha);
s:=a*b*sin(alpha)/2;
end;
3:
begin
write('vvedite dlinu pervoy storoni: ');
readln(a);
write('vvedite dlinu vtoroy storoni: ');
readln(b);
write('vvedite dlinu tretiey storoni: ');
readln(c);
alpha:=(a+b+c)/2;
s:=sqrt(alpha*(alpha-a)*(alpha-b)*(alpha-c));
end;
end;
writeln('Ploshad = ',s:4:2);
readln;
end.
Pchelka вне форума   Ответить с цитированием

Старый 09.06.2011, 12:04
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Обратите внимание на содержимое данных ссылок, это может раскрыть глаза на решение проблемы

Сотовые операторы объяснили ФАСу размер кириллицы
Операторы цикла 2

Старый 09.06.2011, 12:13   #2 (permalink)
AlexZir
support
 
Аватар для AlexZir
 
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
По умолчанию

в начале вставьте repeat
перед пустым readln вставьте until num=0
Это цикл с постусловием, будет работать до тех пор, пока вы не введете вариант 0, потом происходит выход из программы
Код:
Var a,b,c,alpha,h,s:real;
    num:byte;
begin
repeat
writeln('Esli nugno nayti ploshad treugolnika po:');
writeln('  1)osnovaniyu i visote najmite |1|');
writeln('  2)po dwum storonam i uglu najmite |2|');
writeln('  3)po trem storonam najmite |3|');
writeln('Dlia vihoda najmite |0|');
readln(num);
case num of
1:
begin
  write('vvedite dlinu osnovania: ');
  readln(a);
  write('vvedite visotu: ');
  readln(h);
  s:=a*h/2;
end;
2:
begin
  write('vvedite dlinu odnoy storoni: ');
  readln(a);
  write('vvedite dlinu drugoy storoni: ');
  readln(b);
  write('vvedite ugol v radianah: ');
  readln(alpha);
  s:=a*b*sin(alpha)/2;
end;
3:
begin
  write('vvedite dlinu pervoy storoni: ');
  readln(a);
  write('vvedite dlinu vtoroy storoni: ');
  readln(b);
  write('vvedite dlinu tretiey storoni: ');
  readln(c);
  alpha:=(a+b+c)/2;
  s:=sqrt(alpha*(alpha-a)*(alpha-b)*(alpha-c));
end;
end;
writeln('Ploshad = ',s:4:2);
until num=0;
end.
Для аварийной остановки программы лучше использовать команду halt()
__________________
Убить всех человеков!
AlexZir вне форума   Ответить с цитированием
Старый 09.06.2011, 12:17   #3 (permalink)
Pchelka
Новичок
 
Регистрация: 27.05.2011
Сообщений: 9
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

repeat ставить в начале программы? если да, то у меня выдает ошибку
Pchelka вне форума   Ответить с цитированием
Старый 09.06.2011, 12:25   #4 (permalink)
Pchelka
Новичок
 
Регистрация: 27.05.2011
Сообщений: 9
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Спасибо огромное, а вы можете проверить эту же программу на excelе правильно решено?
Вложения
Тип файла: rar Задание №5.1. Работа с операторами цикла.rar (11.5 Кб, 12 просмотров)
Pchelka вне форума   Ответить с цитированием
Старый 09.06.2011, 12:28   #5 (permalink)
AlexZir
support
 
Аватар для AlexZir
 
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
По умолчанию

К сожалению, нет у меня под рукой Excel
__________________
Убить всех человеков!
AlexZir вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 09.06.2011, 12:33   #6 (permalink)
Pchelka
Новичок
 
Регистрация: 27.05.2011
Сообщений: 9
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Посмотрите пожалуйста еще эту программу, мне ее тоже нужно решить через оператор цикла
1. Дано натуральное число N . Вычислить: на картинке пример

uses crt;
var n,i:integer;
s,z:real;
begin
write('n=');
readln(n);
s:=1;
z:=1;
for i:=2 to n do begin
z:=-z/2;
s:=s+z;
end;
write('S=',s:0:5);readln
end.
Правильно ли решено?если нет, то помогите пожалуйста
Миниатюры
mage011.gif  
Pchelka вне форума   Ответить с цитированием
Старый 09.06.2011, 13:11   #7 (permalink)
AlexZir
support
 
Аватар для AlexZir
 
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
По умолчанию

Правильно
__________________
Убить всех человеков!
AlexZir вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 18:57.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.