Лабораторная работа №17 "Составление программ с использованием функций, возвращающих значения"

Задачи


Вариант А1

Написать программу, выводящую на экран результат сравнения двух целых чисел в виде: A>B. Основная программа запрашивает два числа, вызывает функцию и в зависимости от возвращенного значения выводит сообщение. Функция возвращает 1 если A больше B, 0 если A равно B, -1 если A меньше B.

Спойлер
// Вариант 1
#include <stdio.h>
int f(int x, int y) {
  if (x > y) return 1;
  if (x < y) return -1;
  if (x == y) return 0;
}

int main() {
  int a, b, y;
  scanf("%i%i", &a, &b);
  y = f(a, b);
  if (y == 1) printf("%i>%i", a, b);
  if (y == -1) printf("%i<%i", a, b);
  if (y == 0) printf("%i=%i", a, b);
}

Вариант А3

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

Спойлер
// Вариант 3
#include <stdio.h>
float func(char x, float y, float z)
{
	float g;
	if(x=='+') g=y+z;
	if(x=='-') g=y-z;
	return g;
}
int main()
{
	char a;
	float b,c,p;
	scanf("%c",&a);
	scanf("%f%f",&b,&c);
	p=func(a,b,c);
	printf("%f",p);
}

2 лайка

Вариант А2

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

Спойлер
// Вариант 2
#include <stdio.h>
int func(int x)
{
    if(x>=48 && x<=57)
    return 1;
    if(x>=65 && x<=90 || x>=97 && x<=122)
    return 0;
    if(x<48 || x>57 && x<65 || x>90 && x<97 || x>122)
    return -1;
}
int main()
{
    char a;
    int b, c;
    a = getchar();
    b = func(a);
    c = b;
    if(c==1)
    printf("cifra\n");
    if(c==0)
    printf("bukva\n");
    if(c==-1)
    printf("drugoi\n");
}

1 лайк

Вариант А4

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

Спойлер
// Вариант 4
#include <stdio.h>
#include <math.h>
int func(float x, float y)
{
    float z;
    z = sqrt(pow(x,2) + pow(y,2));
    if(x>0 && y>0)
    return z;
    else return -1;
}
int main()
{
    float a,b,d;
    scanf("%f%f",&a,&b);
    d = func(a,b);
    if(d==-1)
    printf("-1");
    else
    printf("%.1f",d);
}

1 лайк

Вариант А6

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

Спойлер
// Вариант 6
#include <stdio.h>
int func(int x)
{
    if(x>0) return 0;
    else return -1;
}
int main()
{
    char a;
    int b,c;
    a = getchar();
    getchar();
    scanf("%i",&b);
    c = func(b);
    if(c==0)
    for(int i=0;i<b;i++)
    {
        printf("%c",a);
    }
    else printf("error");
}

1 лайк