Как в паскале найти площадь цилиндра

Формулировка задачи:

Вычислить площадь поверхности цилиндра по формуле ,где радиус основания цилиндра (R) и высота цилиндра (h) вводятся с клавиатуры,

Код к задаче: «Вычислить площадь поверхности цилиндра по формуле»

textual

Var
  r,h: Real;
BEGIN
Write('Введите радиус основания цилиндра: ');
Readln(r);
Write('Введите высоту цилиндра: ');
Readln(h);
Writeln('Площадь поверхности цилиндра = ',2*pi*r*h+2*pi*Sqr(r):2:2);
END.

Полезно ли:

9   голосов , оценка 4.333 из 5

0 / 0 / 0

Регистрация: 06.02.2011

Сообщений: 13

1

Вычисление площади и объема цилиндра

14.02.2011, 17:48. Показов 52734. Ответов 5


Студворк — интернет-сервис помощи студентам

Доброго времени суток! В который раз нуждаюсь в вашей помощи…

Создать программу для вычисления площади поверхности и объема цилиндра по принципу “ввод значений -> результат”

Информация к размышлению:

Непосредственно формулы (Записать в виде инструкции присваивания):

https://www.cyberforum.ru/cgi-bin/latex.cgi?S=2*pi *r(h+r)

https://www.cyberforum.ru/cgi-bin/latex.cgi?V=pi *{r}^{2}*h

Буду благодарен!



0



N@tali

781 / 462 / 85

Регистрация: 20.02.2010

Сообщений: 974

14.02.2011, 18:17

2

объем

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
program _1;
uses crt;
var
  radius, vysota:real;
begin
  ClrScr;
  TextColor(14);
  Writeln('Вычисление объема цилиндра.');
  Writeln('Введите исходные данные:');
  write('радиус основания -> ');
  readln(radius);
  write('высота цилиндра -> ');
  readln(vysota);
  writeln('Объем цилиндра: ',(2*pi*radius*radius*vysota):7:2);
  Repeat
  Until KeyPressed;
end.

площадь поверхности

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
program _2;
uses crt;
var
  radius, vysota:real;
begin
  ClrScr;
  TextColor(14);
  Writeln('Вычисление площади поверхности цилиндра.');
  Writeln('Введите исходные данные:');
  write('радиус основания -> ');
  readln(radius);
  write('высота цилиндра -> ');
  readln(vysota);
  writeln('Объем цилиндра: ',(2*pi*radius*radius+2*pi*radius*vysota):7:2);
  Repeat
  Until KeyPressed;
end.



1



kofee”k

109 / 109 / 91

Регистрация: 08.01.2011

Сообщений: 171

14.02.2011, 18:22

3

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
program tt;
uses crt;
const
  Pi=3.14;
var
  r,h:integer;
  s,v:real;
begin
  write('Введите r= ');
  readln(r);
  write('Введите h=');
  readln(h);
  S:=2*Pi*r*(h+r);
  V:=Pi*sqr(r)*h;
  writeln('Площадь равна ',S);
  writeln('Объем равен ',V);
  readln;
end.



2



romcka-x

127 / 95 / 74

Регистрация: 18.01.2011

Сообщений: 227

14.02.2011, 18:25

4

Pascal
1
2
3
4
5
6
7
8
9
10
 uses crt;
 var s,v,r,h:real;
 begin
 write('высота цилиндра = '); readln(h);
 write('радиус цилиндра = '); readln(r);
 v:=2*pi*r*(h+r);
 s:=pi*r*r*h;
 writeln('Площадь = ',s);
 writeln('Объем = ',v);
 end.



1



0 / 0 / 0

Регистрация: 06.02.2011

Сообщений: 13

14.02.2011, 18:30

 [ТС]

5

Благодарю! Не ожидал такой оперативности). Всем по +1



0



109 / 109 / 91

Регистрация: 08.01.2011

Сообщений: 171

14.02.2011, 18:33

6

Обращайся



0



Новости

Программы   

Turbo Pascal 

Игры

Документация   

Странности

FAQ

Ссылки

Форум

Гостевая
книга

Рассылка

Благодарности

Об авторе



Пример 1.2.
Определить объём и площадь боковой
поверхности цилиндра с заданными радиусом
основания R и высотой H.
  Тест
 

Данные Результат
R = 1 H = 1 V = 3.14 S = 6.28


  Демонстрация

 Школьный АЯ

алг Цилиндр (арг вещ R, H, рез вещ V, S)
нач вещ Pi
   Pi := 3.14 
   V := Pi * R**2 * H 
   S := 2 * Pi * R * H 
кон


 
Turbo Pascal

Program Cylinder;
  Uses Crt; {Подключение библиотеки Crt}
  Var
    R, {радиус основания цилиндра}
    H, {высота цилиндра }
    V, {объем цилиндра }
    S: Real; {площадь боковой поверхности цилиндра}
BEGIN
  ClrScr; {Вызов из библиотеки Crt процедуры очистки экрана}
  Write('Введите высоту цилиндра : ');  ReadLn(H);
  Write('Введите радиус основания : '); ReadLn(R);
  V := Pi * R * R * H;
  S := 2 * Pi * R * H;  WriteLn;
  WriteLn('Объем цилиндра = ', V : 5 : 2); {Здесь 5 - общее 
      количество позиций, занимаемых переменной V при выводе,
      а 2 - количество позиций в дробной части значения V}
  WriteLn('Площадь боковой поверхности = ', S : 5 : 2);
  ReadLn
END.


 

Вычисление площади поверхности цилиндра

Задача:

Допустим,
организации часто требуется красить
баки цилиндрической формы. При этом они
красят только верхнюю часть и стенки с
внешней стороны.

Организации
требуется программа, которая бы
определяла, сколько банок краски
необходимо для покраски того или иного
бака.

Алгоритм
решения задачи:

Программа
должна запрашивать у пользователя
следующую информацию:

  • диаметр
    бака;

  • высота
    бака;

  • расход
    краски (площадь поверхности, которую
    можно покрасить одной банкой краски).

В
результате программа должна выдавать
количество требуемых банок. При получении
дробного числа округление должно всегда
происходить в большую сторону.

Площадь
крыши бака (круга) вычисляется по формуле
p * d2 /4 (где p – число пи, d – диаметр).

Площадь
боковой поверхности цилиндра: p * d * h
(где h – высота).

Программа
на языке Паскаль:

const
pi = 3.14;

var

d,
h, b: real;

top,
wall, q: real;

q_int:
integer;

begin

write(‘Диаметр:
‘);

readln(d);

write(‘Высота:
‘);

readln(h);

write(‘Окрашиваемая
площадь одной банкой: ‘);

readln(b);

top
:= pi * sqr(d) / 4.0;

wall
:= pi * d * h;

q
:= (top + wall) / b;

q_int
:= trunc(q) + 1;

write(‘Количество
банок:
‘, q_int);

readln

end.

Примечания:

Стандартная
функция trunc
выполняет “отбрасывание” дробной
части и возвращает целое число.

“Заем”. Арифметические выражения, возведение в степень

Алгоритм
решения задачи:

Месячная
выплата m по займу в s рублей на n лет под
процент p вычисляется по формуле:

m
= (s * r * (1 + r)n)
/ (12 * ((1 + r)n
– 1)), где
r = p / 100.

Программа,
вычисляющая значение m (месячную выплату)
по известным s (сумме займа), p (проценту)
и n (количеству лет), может выглядеть
так:

Программа
на языке Паскаль:

var

m,
s,
p,
n,
r,
a:
real;

begin

write(‘Величина
заема : ‘);

readln(s);

write(‘Процент:
‘);

readln(p);

write(‘Количество
лет: ‘);

readln(n);

r
:= p / 100;

a
:= exp(ln(1 + r) * n);

m
:= (s * r * a) / (12 * (a – 1));

m
:= trunc(100 * m + 0.5) / 100;

writeln;

writeln(‘Месячная
выплата: ‘, m:5:2);

writeln(‘Прибыль
банка: ‘, m * 12 * n – s:5:2);

readln

end.

Примечания:

Выражение
exp(ln(1 + r) * n) вычисляет (1 + r)n.

Выражение
trunc(100 * m + 0.5) / 100 выполняет округление до
копейки.

6.Массивы Определить количество элементов массива, значение которых больше соседних элементов

Задача:

Пользователь
вводит n элементов массива. Требуется
определить количество элементов,
значение которых больше, чем у соседних
элементов массива.

Описание
переменных:

m
– количество реальных элементов массива;

qty
– количество элементов массива, значение
которых больше, чем у соседей.

Алгоритм
решения задачи:

  1. Считываем
    числа с помощью процедуры read() и помещаем
    их в массив.

  2. Переменной
    qty присваиваем значение 0.

  3. Переменной
    i, которая обозначает индекс массива,
    присваиваем значение 2, т.к проверять
    первый элемент массива не имеет смысла
    (у него нет левого соседа).

  4. В
    условии цикла выражение i < m говорит
    о том, что последний элемент массива
    также не проверяется, т.к. у него нет
    правого соседа.

  5. Если
    очередной элемент массива (arr[i]) больше
    предшествующего (arr[i-1]) и очередной
    элемент массива (arr[i]) больше последующего
    (arr[i+1]), то …


  6. увеличить значение qty на единицу и …


  7. увеличить значение i на 2, т.к проверять
    следующий элемент нет смысла, т.к. уже
    известно, что он меньше левого соседа.

  8. Иначе
    (если условие не выполнилось) перейти
    к следующему элементу массива (i := i +
    1).

  9. Вывести
    значение qty на экран.

Это
не оптимальный алгоритм, но короткий.

Программа
на языке Паскаль:

const

n
= 100;

var

arr:
array[1..n] of integer;

i,
m, qty: byte;

begin

write(‘Количество
элементов массива: ‘);

readln(m);

write(‘Элементы
массива через пробел: ‘);

for
i:=1 to m do

read(arr[i]);

readln;

qty
:= 0;

i
:= 2;

while
i < m do

if
(arr[i] > arr[i-1]) and (arr[i] > arr[i+1]) then begin

qty
:= qty + 1;

i
:= i + 2

end

else

i
:= i + 1;

writeln(‘Кол-во
элементов, которые больше соседей: ‘,
qty);

readln;

end.

Примечания:

Пример
выполнения программы:

Количество
элементов массива: 6

Элементы
массива через пробел: 3 4 2 3 7 6

Количество
элементов, которые больше соседей: 2

Получается
2, т.к. только четверка и семерка больше
обоих своих соседей.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #

Ответ

Проверено экспертом

===== PascalABC.NET =====

begin

 var R := ReadReal(‘Введите радиус цилиндра:’);

 var h := ReadReal(‘Введите высоту цилиндра:’);

 var S := 2 * Pi * R * h;

 Writeln(‘Площадь боковой поверхности цилиндра ‘, S:0:5)

end.

Ответы и объяснения

Добавить комментарий