Архив блога

воскресенье, 30 января 2011 г.

Задача 136.

Напишите программу, которая проверяет, является ли введенное пользователем целое число простым.

/*
    Программа проверяет является ли число простым.
*/

#include "locale.h"
#include "curses.h"
#include "stdio.h"

main()
{
    int n, r, dec;
    char *log;
    log = setlocale(LC_CTYPE,"ru_RU.UTF-8");
   
    initscr();
    printw("Введите число и нажмите <Enter>.\n");
    scanw("%i", &n);
    dec = 2;
    do
    {
    r = n % dec;
    if(r != 0) dec++;
    }
    while(r != 0);
   
    if(n == dec) printw("Число %i простое.", n);
    else printw("Число %i не простое.", n);
   
    getch();
    endwin();
    return 0;
}

Задача 135.

Напишите программу, которая определяет минимальное число во введенной с клавиатуры последовательности положительных чисел (длина последовательности неограниченна).

/*
    Программа определяет минимальное число во введенной
    с клавиатуры последовательности положительных чисел.
    (длина последовательнсти неограничена)
*/
#include "locale.h"
#include "curses.h"
#include "stdio.h"

main()
{
    int n, min;
    char *log;
    min = 11000;
    n = 0;
   
    log = setlocale(LC_CTYPE,"ru_RU.UTF-8");
    initscr();
    printw("Определение минимального числа в последовательности\n");
    printw("положительных чисел.\n");
    printw("Вводите после стрелки числа.\n");
    printw("Для завершения ввода введите ноль.\n");
    do
    {
    printw("-> ");
    scanw("%i", &n);
    if(min > n && n != 0) min = n;
    }
    while(n > 0);
    printw("Минимальное число: %i", min);
    getch();
    endwin();
    return 0;
}

Задача 134.

Напишите программу, которая определяет максимальное число из введенной с клавиатуры последовательности положительных чисел (длина последовательности неограниченна).

/*
    Программа определяет максимальное число из
    введенной последовательности положительных чисел.
*/

#include "locale.h"
#include "curses.h"
#include "stdio.h"

main()
{
    int max, n;
    char *log;
    n = 0;
    max = 0;
    log = setlocale(LC_CTYPE,"ru_RU.UTF-8");
   
    initscr();
    printw("Определение максимального числа последовательности\n");
    printw("положительных чисел.\n");
    printw("Вводите после стрелки числа. \nДля завершения ввода введите ноль.\n");
    do
    {
    printw("-> ");
    scanw("%i", &n);
    if(max < n) max = n;
    }
    while(n > 0);
    printw("Максимальное число %i", max);
    getch();
    endwin();
    return 0;
}

Задача 133.

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

/*
    Программа вычисляет сумму и  среднее арифметическое
    последовательности положительных чисел. (Для завершения
    последовательности вводится ноль).
*/

#include "locale.h"
#include "curses.h"
#include "stdio.h"

main()
{
    int n, summ, spred, amount;
   
    char *log;
   
    n = 0;
    summ = 0;
    spred = 0;
    amount = 0;
   
    log = setlocale(LC_CTYPE, "ru_RU.UTF-8");
   
    initscr();
   
    printw("Вычисление среднего арифметического последовательности\n");
    printw("положительных чисел.\n");
    printw("Вводите после стрелки числа. \nДля завершения ввода введите ноль.\n");

    do
    {
    printw("-> ");
    scanw("%i", &n);
    amount++;
    summ += n;
    }
    while(n > 0);
   
    spred = summ / (amount-1);
   
    printw("Введено чисел: %i\n", amount-1);
    printw("Сумма чисел: %i\n", summ);
    printw("Среднее арифметическое: %i", spred);
   
    getch();
    endwin();
    return 0;
}

Задача 132.

Напишите программу, которая выводит на экран работающие "электронные часы", которые работают в течение, например, трех минут или до тех пор, пока пользователь не нажмет любую клавишу.

// Программа пока не написана...

Задача 131.

Напишите программу проверки умения складывать и вычитать числа в пределах 100. Программа должна вывести 10 примеров, причем в каждом примере уменьшаемое должно быть больше или равно вычитаемому, т.е. не допускается предлагать испытуемому примеры с отрицательным результатом. Оценка выставляется по следующему правилу: за 10 правильных ответов - "отлично", за 9 и 8 - "хорошо", за 7 и 6 - "удовлетворительно", за 5 и меньше - "плохо".

/*
    Программа проверки умения складывать и вычитать
    числа в пределах 100. Программа выводит 10 при-
    меров, причем в каждом примере уменьшаемое
    должно быть больше или равно вычитаемому, т.е.
    не допускается чтобы результат был отрицательным.
    Оценка выставляется по следующему правилу: за 10 правильных
    ответов - "отлично", за 9 и 8 - "хорошо", за 7 и 6 -
    "удовлетворительно", за 5 и менее - "плохо".
*/
#include "locale.h"
#include "stdio.h"
#include "curses.h"
#include "stdlib.h"
#include "time.h"
main()
{
    int i;
    time_t t;
    int x1, x2, y, otv, znak, point;
    char *s;
    char *log;
   
    i = 0;
    x1 = x2 = y = otv = 0;
    znak = 1;
    point = 0;
   
    log = setlocale(LC_CTYPE,"ru_RU.UTF-8");

    initscr();
    srand((unsigned) time(&t));

    printw("Проверка умения складывать и вычитать числа.\n");
    printw("После примера введите ответ и нажмите <Enter>\n");
   
    for(i = 1; i <= 10; i++)
    {
    x1 = rand() % 100 + 1;
    x2 = rand() % 100 + 1;
    znak = rand() % 2 + 1;
    if(znak == 1)
    {
        if(x1 > x2)
        {
        printw("%i - %i = ", x1, x2);
        y = x1 - x2;
        }
        else
        {
        printw("%i - %i = ", x2, x1);
        y = x2 - x1;
        }
    }
    else
    {
        printw("%i + %i = ", x1, x2);
        y = x1 + x2;
    }
   
    scanw("%i", &otv);
    if(otv == y)
        point++;
        else
        {
        printw("Вы ошиблись правильный ответ: %i\n", y);
        }
    }
   
    printw("Правильных ответов: %i\n", point);
   
    if(point == 10)
    s = "Отлично.";
    else if(point == 9 || point == 8)
        s = "Хорошо.";
        else if(point == 7 || point == 6)
        s = "Удовлетворительно.";
        else s = "Плохо.";
       
    printw("Оценка %s\n", s);
   
    getch();
    endwin();
   
    return 0;
}

Задача 130.

Напишите программу проверки знания таблицы умножения. Программа должна вывести 10 примеров и выставить оценку: за 10 правильных ответов - "отлично", за 9 и 8 - "хорошо", за 7 и 6 - "удовлетворительно", за 5 и менее - "плохо".

/*
    Программа проверяет знание таблицы умножения.
    Программа выводит 10 примеров и выставляет оценку
    10 правильных ответов - "отлично", 9 и 8 - "хорошо",
    7 и 6 - "удовлетворительно". менее 6-ти "плохо".
*/

#include "locale.h"
#include "stdio.h"
#include "curses.h"
#include "stdlib.h"
#include "time.h"

main()
{
    int i;
    time_t t;
    char *log;
    char *s;
    int point;
    int x1, x2, y;
   
    i = 0;
    point = 0;
    x1 = x2 = y = 0;
   
    log = setlocale(LC_CTYPE, "ru_RU.UTF-8");
   
    initscr();
   
    srand((unsigned) time(&t));
   
    printw("*** Проверка знания таблицы умножения. ***\n");
    printw("После примера введите ответ и нажмите <Ente>\n");
   
    point = 0;
    for(i = 1; i <= 10; i++)
    {
    x1 = rand() % 10 + 1;
    x2 = rand() % 10 + 1;
    printw("%i x %i = ", x1, x2);
   
    scanw("%i", &y);
    if(y != (x1 * x2))
    {
        printw("Вы ошиблись %i x %i = %i\n", x1, x2, y);
    }
    else point++;
    }
   
    printw("Правильных ответов %i\n", point);
   
    if(point == 10) s = "Отлично.";
    else if (point == 9 || point == 8) s = "Хорошо.";
        else if (point == 7 || point == 6) s = "Удовлетворительно.";
        else s = "Плохо.";

    printw("Оценка: %s", s);
    getch();
    endwin();
    return 0;
}