Несколько задач на языке С (Си)
1. Вычислить среднее арифметическое двух значений х1 и х2.
2. Перевести длину, заданную в дюймах, в сантиметры (10 дюймов = 254 мм).
3. Перевести длину, заданную в сантиметрах, в дюймы.
4. Перевести температуру из шкалы Фаренгейта в шкалу Цельсия (формула для пересчета c=(5/9)(f-32)).
5. Перевести температуру из шкалы Цельсия в шкалу Фаренгейта.
6. Вычислить площадь кольца (внешний радиус R, внутренний — r).
7. Вычислить периметр и площадь:
a) квадрата со стороной, равной а.
b) прямоугольного треугольника с катетами a и b.
c) равнобедренного треугольника с основанием a и высотой h.
d) равнобокой трапеции с длинами оснований a и b и высотой h.
e) равностороннего треугольника со стороной, равной a.
8. Вычислить площадь поверхности и объем:
a) цилиндра (радиус r, высота h).
b) полого цилиндра (радиусы R и r, высота h).
c) шара (S=4Pr2, V=(3/4)Pr3).
9. Вычислить периметры и площади вписанных и описанных фигур:
a) квадратов относительно окружности радиуса r.
b) окружностей относительно квадрата со стороной a.
c) равносторонних треугольников относительно окружности радиуса r.
d) окружностей относительно равностороннего треугольника со стороной a.
Первая задача (решение):
[php]// two.cpp: определяет точку входа для консольного приложения.
#include "stdafx.h"
#include <iostream>
using namespace std;
// function mean of number
float arn (int a, int b)
{
return (a+b)/2.0;
}
//end function
int main( int argc, char *argv[] )
{
int x1,x2;
float result;
cout << "Input number one: ";
cin >> x1;
cout << "Input number two: ";
cin >> x2;
result = arn (x1, x2); //call function arn
cout << "The arithmetic mean of number " << x1 << " and " << x2 << " is " << result << endl;
_gettch();
return 0;
}
[/php]
С кодом конечно намудрил немного, но программка работает. В коде используется своя функция (arn). Которая просто считает среднее арифметическое двух чисел. Можно избавиться от переменной result и сразу вывести функцию. Количество строк уменьшится в коде на 2. Еще есть варианты как упростить код?
Четвертая и пятая задачи встречаются часто в одном задании и формулируется так:
Ввести температуру с указанием шкалы измерения (C – шкала Цельсия, F– шкала Фаренгейта), напечатать результат в обеих шкалах (формула для пересчета c=(5/9)(f-32)): например,
a. при вводе «32F» или «32f» напечатать «32F= 0C»
b. при вводе «5C» или «5c» напечатать «5C= 41F»
Решение (простое решение):
[php]
// temp.cpp: определяет точку входа для консольного приложения.
//
#include "stdafx.h"
#include <string>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
//variables . . .
signed int number;
char stroka;
signed int itog;
//input . . .
printf ("Input temperature (example 34F or 35C): ");
scanf("%d%1c", &number, &stroka);
//solution . . .
switch (stroka)
{
case ‘F’ | ‘f’ :
itog = (number-32)*5/9;
printf ("temperature %d %c = %d C \n", number, stroka, itog);
break;
case ‘C’ | ‘c’ :
itog = number*9/5+32;
printf ("temperature %d %c = %d F \n", number, stroka, itog);
break;
default : printf ("Error %c is not F or C\n", stroka);
}
//pause. . .
system("PAUSE");
return 0;
}[/php]
Код протестирован, и программка работает.