Задание 1 - Обработка числовых данных (лабораторная по Си)

Лабораторная для школ и вузов по решению задач по обработке числовых данных с помощью ветвления и циков на языке C (Си). Перечень задач лабораторной работы (клик по ссылке направляет на решение задачи, если таковое имеется):

  1. Для данных чисел a, b и c определить, сколько корней имеет уравнение ax^2 + bx + c = 0, и распечатать их. Если уравнение имеет комплексные корни, то распечатать их в виде v +- iw.
  2. Подсчитать количество натуральных чисел n (111 <= n <= 999), в записи которых есть две одинаковые цифры.
  3. Подсчитать количество натуральных чисел n (102 <= n <= 987), в которых все три цифры различны.
  4. Подсчитать количество натуральных чисел n (11 <= n <= 999), являющихся палиндромами, и распечатать их.
  5. Подсчитать количество цифр в десятичной записи целого неотрицательного числа n.
  6. Определить, верно ли, что куб суммы цифр натурального числа n равен n^2.
  7. Определить, является ли натуральное число n степенью числа 3.
  8. Для данного вещественного числа a среди чисел 1, 1 + (1/2), 1 + (1/2) + (1/3), ... найти первое, большее a.
  9. Для данного вещественного положительного числа a найти наименьшее целое положительное n такое, что 1 + 1/2 + 1/3 + ... + 1/n > a.
  10. Даны натуральное число n и вещественное число x. Среди чисел exp(cos(x^2k))sin(x^3k) (k = 1, 2, ..., n) найти ближайшее к какому-нибудь целому.
  11. Дано натуральное число n. Найти значение числа, полученного следующим образом: из записи числа n выбросить цифры 0 и 5, оставив прежним порядок остальных цифр.
  12. Дано натуральное число n. Получить все такие натуральные q, что n делится на q^2 и не делится на q^3.
  13. Дано натуральное число n. Получить все его натуральные делители.
  14. Дано целое число m > 1. Получить наибольшее целое k, при котором 4^k < m.
  15. Дано натуральное число n. Получить наименьшее число вида 2^r, превосходящее n.
  16. Распечатать первые n простых чисел (p – простое число, если p >= 2 и делится только на 1 и на себя).
  17. Даны вещественные числа x и y (x > 0, y > 1). Получить целое число k (положительное, отрицательное или равное нулю), удовлетворяющее условию y^k-1 <= x < y^k.
  18. Распечатать первые n чисел Фибоначчи (f0 = 1; f1 = 1; fk+1 = fk-1+ fk; k = 1, 2, 3, ...).
  19. Распечатать числа Фибоначчи (см. задачу 3.34), являющиеся простыми числами со значениями меньше n.
  20. Вычислить с точностью eps > 0 значение числа e - предел последовательности {xi} при i ? ? xi = (1 + 1 / i)^i, i = 1, 2, ... . Считать, что требуемая точность достигнута, если |xi - xi+1| < eps.
  21. Вычислить квадратные корни вещественных чисел x = 2.0, 3.0, ... , 100.0. Распечатать значения x, , количество итераций, необходимых для вычисления корня с точностью eps > 0. Для a > 0 величина вычисляется следующим образом: a0 = 1; ai+1 = 0.5 ? (ai + a / ai ) i = 0, 1, 2, ... . Считать, что требуемая точность достигнута, если |ai - ai+1| < eps.
  22. Натуральное число называется совершенным, если оно равно сумме всех своих делителей, за исключением самого себя. Дано натуральное число n. Получить все совершенные числа, меньшие n.
  23. Определить, является ли число простых чисел, меньших 10000, простым числом.

Работоспособность всех программ проверена в CodeBlocks 16.01 (MinGW, Windows 10). Свои решения нерешённых программ и пожелания по улучшению существующих можете давать в комментариях внизу страницы.

Скачать файл лабораторной и все исходные коды программ в архиве:


№2: Подсчитать количество натуральных чисел n (111 <= n <= 999), в записи которых есть две одинаковые цифры.

#include <stdio.h>

int main()
{
    int i, count = 0;
    for (i = 111; i <= 999; i++)
        if (i / 100 == i % 10 || i / 100 == i % 100 / 10 || i % 100 / 10 == i % 10)
            count++;
    printf("%d", count);
    return 0;
}

№3: Подсчитать количество натуральных чисел n (102 <= n <= 987), в которых все три цифры различны.

#include <stdio.h>

int main()
{
    int i, count = 0;
    for (i = 102; i <= 987; i++)
        if (i / 100 != i % 10 && i / 100 != i % 100 / 10 && i % 100 / 10 != i % 10)
            count++;
    printf("%d", count);
    return 0;
}

№4: Подсчитать количество натуральных чисел n (11 <= n <= 999), являющихся палиндромами, и распечатать их.

#include <stdio.h>

int main()
{
    int i;
    for (i = 11; i <= 999; i++)
        if (i < 100 && i / 10 == i % 10)
            printf("%d\n", i);
        else if (i > 100 && i / 100 == i % 10)
                printf("%d\n", i);
    return 0;
}

№9: Для данного вещественного положительного числа a найти наименьшее целое положительное n такое, что 1 + 1/2 + 1/3 + ... + 1/n > a.

#include <stdio.h>

int main()
{
    int n = 1;
    float a, count = 1.0;
    scanf("%f", &a);
    while (count < a) {
        n++;
        count = count + (1.0 / n);
    }
    printf("%d", n);
    return 0;
}

№11: Дано натуральное число n. Найти значение числа, полученного следующим образом: из записи числа n выбросить цифры 0 и 5, оставив прежним порядок остальных цифр.

#include <stdio.h>

int main()
{
    int n = 1;
    float a, count = 1.0;
    scanf("%f", &a);
    while (count < a) {
        n++;
        count = count + (1.0 / n);
    }
    printf("%d", n);
    return 0;
}

№13: Дано натуральное число n. Получить все его натуральные делители.

#include <stdio.h>

int main()
{
    int n, i;
    scanf("%d", &n);
    for (i = 1; i <= n/2; i++)
        if (n % i==0)
            printf("%d ", i);
    printf("%d", n);
    return 0;
}

№16: Распечатать первые n простых чисел (p – простое число, если p >= 2 и делится только на 1 и на себя).

#include <stdio.h>

int main()
{
    int n, i = 0, i1, k = 1, k1 = 0;
    scanf("%d", &n);
    while (n > i){
        k++;
        for (i1 = 1; i1 <= k; i1++)
            if (k % i1 == 0)
                k1++;
        if (k1 == 2){
            printf("%d ", k);
            i++;
        }
        k1 = 0;
    }
    return 0;
}

№18: Распечатать первые n чисел Фибоначчи (f0 = 1; f1 = 1; fk+1 = fk-1+ fk; k = 1, 2, 3, ...).

#include <stdio.h>

int main()
{
    int n, i, f0 = 1, f1 = 1;
    printf("Enter n: ");
    scanf("%d", &n);
    printf("Pervye %d chisel Fibonachi: ", n);
    for (i=1; i<=n; i++){
        if (f0 >= f1) {
            printf("%d ", f1);
            f1 = f0 + f1;
        } else {
            printf("%d ", f0);
            f0 = f1 + f0;
        }
    }
    return 0;
}

№19: Распечатать числа Фибоначчи (см. задачу 3.34), являющиеся простыми числами со значениями меньше n.

#include <stdio.h>

int main()
{
    int n, i, f0 = 1, f1 = 1, k, k1;
    printf("Enter n: ");
    scanf("%d", &n);
    while (f0 <= n || f1 <= n){
        if (f0 >= f1) {
            k = f1;
            f1 = f0 + f1;
        } else {
            k = f0;
            f0 = f1 + f0;
        }
        for (i = 1; i <= k; i++)
            if (k % i == 0)
                k1++;
        if (k1 <= 2)
            printf("%d ", k);
        k1 = 0;
    }
    return 0;
}



Реклама