Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
23 / 23 / 7
Регистрация: 04.11.2011
Сообщений: 566
Записей в блоге: 1
1

Помогите написать программу в Вorland С31 (для 16-ной СИСТЕМЫ)

05.11.2011, 14:57. Показов 1246. Ответов 19
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите решить эти задачи =>
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.11.2011, 14:57
Ответы с готовыми решениями:

Помогите написать программу в Вorland С31 (для 16-ной СИСТЕМЫ)
Помогите решить эти задачи => http://s51.***********/i134/1111/53/cf71bfc67680.jpg Добавлено...

Написать программу, выводящую таблицу умножения для n-ной системы счисления (n<=16)
Вот моя программа, выводящая на экран таблицу умножения в 16-ной системе счисления, требуется...

Написать рекурсивную процедуру перевода натурального числа из десятич- ной системы счисления в N-ричную
Всем привет. Здание такое: Написать рекурсивную процедуру перевода натурального числа из десятич-...

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

19
277 / 150 / 25
Регистрация: 05.11.2011
Сообщений: 429
Записей в блоге: 1
05.11.2011, 17:28 2
3.11. Программа читает векторы x, y и выводит их скалярное произведение. Используйте оператор while и простые переменные (без индексов).
Странное задание. Почему нужно использовать while, если переменные без индексов. В голову пришёл только такой вариант с указателями.

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <stdio.h>
 
main() {
        int x[5];
        int y[5];
        int n = 0, xy = 0;
        printf("Enter vectors X, Y: ");
        while (n < 5) {
                scanf("%d", x+n);
                n++;
        }
        n = 0;
        while (n < 5) {
                scanf("%d", y+n);
                n++;
        }
        n = 0;
        while (n < 5) {
                xy += *(x+n) * *(y+n);
                n++;
        }
        
        printf("x * y = %d\n", xy);
}
Задать различные параметры и посмотреть вывод можно здесь.
1
23 / 23 / 7
Регистрация: 04.11.2011
Сообщений: 566
Записей в блоге: 1
05.11.2011, 17:52  [ТС] 3
ну это наш учитель такое задание придумал можешь ещё пару решить плиз мне до понедельника нужно все сдать
p.s. большое спс за решение задачи

Добавлено через 5 минут
а что значит 12 строчка где написано два раза умножить? "* *"
0
277 / 150 / 25
Регистрация: 05.11.2011
Сообщений: 429
Записей в блоге: 1
05.11.2011, 18:01 4
Цитата Сообщение от generation472 Посмотреть сообщение
ну это наш учитель такое задание придумал можешь ещё пару решить плиз мне до понедельника нужно все сдать
p.s. большое спс за решение задачи

Добавлено через 5 минут
а что значит 12 строчка где написано два раза умножить? "* *"
умножение там одно. А вот *(x+n) значит получить хранимое значение по указанному адресу. Аналогично *(y+n).

Строчку *(x+n) * *(y+n) можно записать по-другому как x[n] * y[n]. Так как сказано
(без индексов)
был применен способ через указатели.
0
23 / 23 / 7
Регистрация: 04.11.2011
Сообщений: 566
Записей в блоге: 1
05.11.2011, 18:12  [ТС] 5
а понял это поинтер не сообразил сразу , а зачем тогда вот в этом "xy +" + та же строчка

Добавлено через 3 минуты
и последний вопрос для этой задачи))) почему когда я ввожу векторы получается что я ввожу 11 а не 10 , там же объявлено вроде как 10 переменных а не 11?
0
277 / 150 / 25
Регистрация: 05.11.2011
Сообщений: 429
Записей в блоге: 1
05.11.2011, 18:18 6
Цитата Сообщение от generation472 Посмотреть сообщение
а понял это поинтер не сообразил сразу , а зачем тогда вот в этом "xy +" + та же строчка
сокращенная запись a += b значит a = a + b

В строчке 12 вычисляется скалярное произведение.

Добавлено через 3 минуты
Цитата Сообщение от generation472 Посмотреть сообщение
Добавлено через 3 минуты
и последний вопрос для этой задачи))) почему когда я ввожу векторы получается что я ввожу 11 а не 10 , там же объявлено вроде как 10 переменных а не 11?
В стандартный поток ввода можно уместить 100 чисел и больше (на сколько хватит буфера). А программа считывает только 10 значений.

Это вполне нормально при вводе через пробел.

Пример
ввод:

1 1 1 1 1 2 2 2 2 2 3

вывод:

Enter vectors X, Y: x * y = 10
1
23 / 23 / 7
Регистрация: 04.11.2011
Сообщений: 566
Записей в блоге: 1
05.11.2011, 18:24  [ТС] 7
ясно спс. можешь ещё решить пару?
0
277 / 150 / 25
Регистрация: 05.11.2011
Сообщений: 429
Записей в блоге: 1
05.11.2011, 18:28 8
Цитата Сообщение от generation472 Посмотреть сообщение
ясно спс. можешь ещё решить пару?
Как будет время и желание. Ничего обещать не могу.
0
23 / 23 / 7
Регистрация: 04.11.2011
Сообщений: 566
Записей в блоге: 1
05.11.2011, 18:31  [ТС] 9
да я тебя понимаю спс, если сможешь решить до понедельника выкладываю сюда
0
277 / 150 / 25
Регистрация: 05.11.2011
Сообщений: 429
Записей в блоге: 1
05.11.2011, 19:06 10
Задание 3.13.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include <stdio.h>
#include <math.h>
 
main() {
        int x[5];
        int n = 0;
        
        while (n < 5) {
                scanf("%d", &x[n]);
                n++;
        }
        
        // среднее арифметическое
        double m = 0;
        n = 0;
        while (n < 5) {
                m += x[n];
                n++;
        }
        m /= n;
        
        // среднее геометрическое
        n = 0;
        double g = 1;
        while (n < 5) {
                g *= x[n];
                n++;
        }
        g = pow(g, 1.0/n);
        
        // квадратическое отклонение
        n = 0;
        double s = 0;
        while (n < 5) {
                s += pow(x[n] - m, 2);
                n++;
        }
        s = sqrt(s/n); // или s = pow(s/n, 1.0/2.0);
        
        printf("1) %f\n", m);
        printf("2) %f\n", g);
        printf("3) %f\n", s);
}
Функции из math.h:
pow -- возведение в степень
sqrt -- квадратный корень
1
23 / 23 / 7
Регистрация: 04.11.2011
Сообщений: 566
Записей в блоге: 1
05.11.2011, 19:19  [ТС] 11
Цитата Сообщение от Xind Посмотреть сообщение
m += x[n]
а можно расписать это как то по другому а то не очень понятно
m += x[n] это равно m=m+x[n] правильно ?
0
7 / 7 / 3
Регистрация: 30.08.2011
Сообщений: 48
05.11.2011, 19:46 12
Вот мой "быдлокод"... )) На 3.14 задачу. Требуется "конвертация" под комп, т.к. проверял только на PSP, не уверен, что будет работать без соответствующей правки с данными, выдаваемыми из под scanf, хотя в задаче не указано, что именно вводится слово не более 70 символов, поэтому это тоже объективное решение.

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
char word[9/*Здесь число не более 70, которое равно кол-ву символов массива что после равно -->>*/] = "123456789abcdefg";
    
printf("prefixes...\n");
 
int i, p;
for(i = 1; i < sizeof(word); i++)
{
    printf("prefix N%d: ", i);
    for(p = 0; p < i; p++)
        printf("%c", word[p]);
    printf("\n");
}
    
printf("\nsuffixes...\n");
 
for(i = sizeof(word) - 1; i > 0; i--)
{
    printf("suffix N%d: ", sizeof(word) - i);
    for(p = sizeof(word) - i; p < sizeof(word); p++)
        printf("%c", word[p]);
    printf("\n");
}
Если мне будет не лень, ещё и 3.16 решу.. но завтра.
1
277 / 150 / 25
Регистрация: 05.11.2011
Сообщений: 429
Записей в блоге: 1
05.11.2011, 19:48 13
Цитата Сообщение от generation472 Посмотреть сообщение
а можно расписать это как то по другому а то не очень понятно
m += x[n] это равно m=m+x[n] правильно ?
Все верно. Такая запись очень удобна. На таких задачах можно и разворачивать. Но в будущем лучше использовать короткую запись (особенно при работе со структурами).
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include <stdio.h>
#include <math.h>
 
main() {
        int x[5];
        int n = 0;
        
        while (n < 5) {
                scanf("%d", &x[n]);
                n++;
        }
        
        // среднее арифметическое
        double m = 0;
        n = 0;
        while (n < 5) {
                m = m + x[n];
                n++;
        }
        m = m / n;
        
        // среднее геометрическое
        n = 0;
        double g = 1;
        while (n < 5) {
                g = g * x[n];
                n++;
        }
        g = pow(g, 1.0/n);
        
        // квадратическое отклонение
        n = 0;
        double s = 0;
        while (n < 5) {
                s = s + pow(x[n] - m, 2);
                n++;
        }
        s = sqrt(s/n); // или s = pow(s/n, 1.0/2.0);
        
        printf("1) %f\n", m);
        printf("2) %f\n", g);
        printf("3) %f\n", s);
}
1
23 / 23 / 7
Регистрация: 04.11.2011
Сообщений: 566
Записей в блоге: 1
05.11.2011, 20:09  [ТС] 14
просто я когда буду показывать эти задачи и меня спросит что это значит (а он может спросит так как не показывал нам такой способ) чтобы я мог ответить))) огромное спс всем за помощь

Добавлено через 5 минут
Frostegater спс буду ждать! я не очень понял 2 строчку а именно почему в массиве число 9 и почему он равен "123456789abcdefg"
0
277 / 150 / 25
Регистрация: 05.11.2011
Сообщений: 429
Записей в блоге: 1
05.11.2011, 20:17 15
3.15

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
 
main() {
        float a, eps = 1E-10; // то же самое, что esp = 0.0000000001
        scanf("%f", &a);
        
        float xi = 1.0, xn;
        do {
                xn = xi;
                xi = 0.5 * (xn + a / xn);
        } while (fabs(xi - xn) > eps);
        
        printf("sqrt(%f) = %f\n", a, xn);
}
запись 1E-10 значит 1 * 10 в степени -10
1
23 / 23 / 7
Регистрация: 04.11.2011
Сообщений: 566
Записей в блоге: 1
05.11.2011, 20:21  [ТС] 16
что значит это?
Цитата Сообщение от Xind Посмотреть сообщение
fabs
0
277 / 150 / 25
Регистрация: 05.11.2011
Сообщений: 429
Записей в блоге: 1
05.11.2011, 20:42 17
Цитата Сообщение от generation472 Посмотреть сообщение
что значит это?
fabs(x) = |x| -- Абсолютная величина или модуль. По заданию |xn+1 -xn|

в заголовке math.h есть просто abs() - он для целочисленных значений, а fabs для чисел с плавающей точкой float
1
23 / 23 / 7
Регистрация: 04.11.2011
Сообщений: 566
Записей в блоге: 1
05.11.2011, 20:48  [ТС] 18
ясно спс
0
277 / 150 / 25
Регистрация: 05.11.2011
Сообщений: 429
Записей в блоге: 1
05.11.2011, 21:20 19
3.12
Borlanda у меня нет так что по памяти
C
1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
#include <conio.h>
 
main() {
        int c = 0;
        while (c < 256) {
                printf("%u ", c);
                putch(c);
                putch('\n');
                c++;
        }
}
все дело в функции putch, которая лежит в conio.h из набора Borlanda. Я бы не стал так делать. Лучше воспользоваться из stdio.h функцией putchar()

C
1
2
3
4
5
6
7
8
9
10
11
#include <stdio.h>
 
main() {
        int c = 0;
        while (c < 256) {
                printf("%u ", c);
                putchar(c);
                putchar('\n');
                c++;
        }
}
Проверял, работает, выводит столбик ASCII)))

а ещё лучше сделать все в printf()
C
1
2
3
4
5
6
7
8
9
#include <stdio.h>
 
main() {
        int c = 0;
        while (c < 256) {
                printf("%u %c \n", c, c);
                c++;
        }
}
Пара замечаний: В коде используется тип int для избежания зацикливания в случае применения unsigned char, который принимает от 0 до 255 (проверка while (c < 256) всегда будет проскакивать ), а int больше и безопаснее.

%u - значит преобразовать значение переменной в unsigned char в целочисленном виде
%c - значит выводить в символьном виде

Уф! Все.
0
23 / 23 / 7
Регистрация: 04.11.2011
Сообщений: 566
Записей в блоге: 1
05.11.2011, 21:38  [ТС] 20
спс тебе огромное сделал доброе дело)))
0
05.11.2011, 21:38
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.11.2011, 21:38
Помогаю со студенческими работами здесь

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

Написать программу для перевода из двоичной системы в десятичную
Всем привет, помогите решить задачу.... Мне к 11-30 ехать на пересдвчу, а я в делфи 0 Помогите...

Написать программу для решения системы нелинейных уравнений
Не могу сделать прогу на С++. Кто сделает - огромное спасибо. sin(9x)+cos(7y)-5z*z=10,...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru