Нужно пояснение к паре программ - C (СИ)

Узнай цену своей работы

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

Здравствуйте, помогите пожалуйста с парой задач на Си:
//Пациент 3
pacient3.nomer = pacient2.nomer;
sprintf(pacient3.fio, "%s",pacient2.fio);
sprintf(pacient3.pasport, "%s",pacient2.pasport);
sprintf(pacient3.obratilsya, "%s",pacient2.obratilsya);
sprintf(pacient3.vipisan, "%s",pacient2.vipisan);
sprintf(pacient3.diagnoz, "%s",pacient2.diagnoz);
 
cout                <<pacient2.nomer
                    <<"   "
                <<pacient2.fio
                <<"   "
                <<pacient2.pasport
                <<"   "
                <<pacient2.obratilsya
                <<"   "
                <<pacient2.vipisan
                <<"   "
                <<pacient2.diagnoz
                <<endl;
    //Пациент 4
    pacient4=(spisok*)malloc(sizeof(spisok));

printf("vvedite nomer->"           ); scanf ("%d", &(pacient4->nomer));
printf("vvedite fio->"             ); scanf ("%s", pacient4->fio);
printf("vvedite pasport->"         ); scanf ("%s", pacient4->pasport);
printf("vvedite data obrasheniya->"); scanf ("%s", pacient4->obratilsya);
printf("vvedite data vipiski->"    ); scanf ("%s", pacient4->vipisan);
printf("vvedite diagnoz->"         ); scanf ("%s", pacient4->diagnoz);
 
    cout            <<pacient4->nomer
                           <<"   "
                <<pacient4->fio
                <<"   "
                <<pacient4->pasport
                <<"   "
                <<pacient4->obratilsya
                <<"   "
                <<pacient4->vipisan
                <<"   "
                <<pacient4->diagnoz
                <<endl;
Это 2 куска кода, в первом куске выводится информация о больном, информация берется из самой программы, во втором куске информация берется с клавиатуры. Может быть вопрос покажется очень глупым, но все же - что означают "." и "->" и какая разница между ними в первом и втором куске (pacient3

.

obratilsya) и (pacient4

->

obratilsya). И еще - дана программа: - пользователь вводит 2 числа a и b. - специальная функция вычисляет площадь треугольника, образованного линиями: y=ax+b, осью Ox и осью Oy; - ввод и вывод данных должен быть также реализован через функции; - главная функция программы «main» должна обеспечивать «нормальный» диалог с пользователем. И я не совсем понимаю как обьяснить ее действие построчно, если вас не затруднит, напишите подробные комментарии к строкам программы, пожалуйста.
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
#include <stdlib.h>
#include <math.h>
 
void   Vvod(int *, int *);
double Raschet(int, int);
void   Print(double);
void main (void)
{
int a,b,i;
double s;
for (i=0; i<5; i++)
{
Vvod(&a, &b);
s=Raschet(a, b);
Print(s);
}
}
//******************************************************
void Vvod(int *a, int *b)
{
printf("vvedite storonu a=");   scanf ("%d" ,a);
printf("vvedite storonu b=");   scanf ("%d" ,b);
}
//******************************************************
double Raschet(int a, int b)
{
double s, x, y;
if (a==0) { s=-1;
            printf("treugolnik otsutstvuet\n"); }
else { y=b;
       x=b/a;
       s=(x*y)/2;
     }
return s;
}
//******************************************************
void   Print(double R)
{
if (R>=0.0) printf("S=%lf\n\n",R);
}
//******************************************************
P.S. Я не совсем дурак или тупой, просто очень много лекций по языкам программирования я проболел, и теперь не все понимаю, учитель немного помогает разобраться, но все же с половиной приходится разбираться самому, и у меня это не всегда получается, поэтому приходится просить помощи. Зарание спасибо откликнувшимся, рассчитываю на вас.

Решение задачи: «Нужно пояснение к паре программ»

textual
Листинг программы
// подключени заголовочных файлов
#include <stdio.h>//это что бы работали printf() и scanf().
#include <conio.h> //функции этого заголовка, вообще в проге не используются, его можно удалить
#include <iostream.h>// и это тоже удалить
#include <stdlib.h> // и это 
#include <math.h>// и это
 
void   Vvod(int *, int *); //обьявление (не определение!) функции Vvod
double Raschet(int, int); //обьявление функции Raschet
void   Print(double); //обьявление функции
void main (void) //точка входа в рограмму
{
int a,b,i; // обьявление переменных
double s;// обьявление переменных
for (i=0; i<5; i++)//цикл который повторится 4 раз с i в диапазоне [0..4]
{                  //внутри цикла происходит следущее 
Vvod(&a, &b); //вводятся очередые a и b
s=Raschet(a, b); //определяется площать прямоугольеика
Print(s); //площадь выводится на экран.
}// четыре раза пользователь бует вводить свои a и b
}
//******************************************************
void Vvod(int *a, int *b) //процидура по вводу а и b 
{
printf("vvedite storonu a=");   scanf ("%d" ,a);  //а и b возвращаются по ссылке, здесь все тривиально.
printf("vvedite storonu b=");   scanf ("%d" ,b);
}
//******************************************************
double Raschet(int a, int b) //определение площади
{
double s, x, y; 
// если высота =0 то прога возвращает -1 - результат свидетельствующий о неудаче подсчета. на самом деле надо бы 0 возвращать
if (a==0) { s=-1;
            printf("treugolnik otsutstvuet\n"); }
else { y=b;//здесь вычислятеся непосредственно площадь
       x=b/a;
       s=(x*y)/2;
     }
return s; //вычисленное значение возвращается функцией
}
//******************************************************
void   Print(double R) //вывод на экран значения R ...
{// ... тлько если оно больше или равно 0; этой ф-ей в проге выводитс на экран уже посчитанная площадь треугольника.
if (R>=0.0) printf("S=%lf\n\n",R);
}
//******************************************************

Объяснение кода листинга программы

  1. В коде присутствуют функции: Vvod, Raschet, Print, main.
  2. Функция Vvod используется для ввода значений переменных a и b.
  3. Функция Raschet используется для расчета площади треугольника на основе введенных значений a и b.
  4. Функция Print используется для вывода значения площади на экран.
  5. В функции main происходит инициализация переменных a, b, i, s.
  6. Затем в цикле for происходит вызов функции Vvod, ввод значений a и b, расчет площади с помощью функции Raschet и вывод значения площади с помощью функции Print.
  7. Если высота треугольника равна 0, функция Raschet возвращает -1 и выводит сообщение treugolnik otsutstvuet.
  8. Если высота треугольника не равна 0, то в функции Raschet вычисляется площадь треугольника и возвращается значение s.
  9. Значение площади выводится на экран в функции Print, если оно больше или равно 0.0.
  10. Значения переменных a, b, i, s выводятся на экран в функции main после каждого цикла.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.167 из 5
Похожие ответы