- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Лабораторная работа № 7
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
Void main()
{
char tmp[30];
int a, b = 0, i, mask = 2047;
cin >> a;
_itoa_s(a, tmp, 2);
cout << tmp << endl;
_itoa_s((a & mask) >> 5, tmp, 2);
cout << tmp << endl;
for (i = 10; i >= 0; i--)
{
if (tmp[i] == '1')
{
b++;
}
}
cout << b << endl;
}
№2
Извлечь 3 бита числа А, начиная с позиции n, и вставить их в число В, начиная с позиции m.
#include <iostream>
using namespace std;
Void main()
{
char tmp[30];
//n=2, m=3
int a, b, mask1 = 28, mask2 = ~mask1 << 1;
cin >> a;
_itoa_s(a, tmp, 2);
cout << tmp << endl;
cin >> b;
_itoa_s(b, tmp, 2);
cout << tmp << endl;
_itoa_s((b&mask2), tmp, 2);
cout << tmp << endl;
_itoa_s((a&mask1) << 1, tmp, 2);
cout << tmp << endl;
_itoa_s(((a&mask1) << 1) | (b&mask2), tmp, 2);
cout << tmp << endl;
}
№3
Используя битовые операции проверить, кратно ли двум число А.
#include <iostream>
using namespace std;
Void main()
{
setlocale(LC_CTYPE, "Russian");
char tmp[20];
int a;
cin >> a;
_itoa_s(a, tmp, 2);
if ((a & 1) == 0) cout << "Число кратно двум" << endl;
else cout << "Число не кратно двум" << endl;
}
№4
В числе А установить в ноль n битов влево от позиции p.
#include <iostream>
using namespace std;
Void main()
{
char tmp[30];
int n, p = 3, A;
cout << "Vvedite chislo" << endl;
cin >> A;
_itoa_s(A, tmp, 2);
cout << tmp << endl;
cout << "Kolichestvo bitov" << endl;
cin >> n;
int maskA = 1 << (n + p) | 7;
_itoa_s(A & maskA, tmp, 2);
cout << tmp << endl;
}
Лабораторная работа №11
№1
Даны два массива x и y. Найти количество одинаковых элементов в этих массивах, т. е. количество пар x[i] = y[j] для некоторых i и j.
#include <iostream>
#include <ctime>
#include <locale>
using namespace std;
Void main()
{
int i, j, n = 0;
double x[100], y[90];
srand((unsigned)time(NULL));
for (i = 0; i < 100; i++)
{
*(x+i) = rand() % 200;
}
for (j = 0; j < 90; j++)
{
*(y+j) = rand() % 100;
}
for (i = 0; i < 100; i++)
{
j = 0;
for (j; j < 90; j++)
{
if (*(x+i) == *(y+j))
{
n++;
break;
}
}
}
cout << n << endl;
}
№2
Дан массив А размера n, не содержащий нулевых элементов. Преобразовать массив А так, чтобы вначале шли положительные элементы, а затем отрицательные. Дополнительные массивы не использовать.
#include <iostream>
#include <ctime>
#include <locale>
using namespace std;
Void main()
{
const int n = 100;
int i, g, max = 50, k;
double A[n];
srand((unsigned)time(NULL));
for (i = 0; i < n; i += 2)
{
*(A + i) = ((rand() % max) + 1);
}
for (i = 1; i < n; i += 2)
{
*(A + i) = ((-1)*(rand() % max) - 1);
}
for (i = 0; i < n; i++)
{
if (*(A + i) < 0)
{
for (g = 99; g > -0.0001; g--)
{
k = *(A + i);
if (*(A + g) > 0)
{
*(A + i) = *(A + g);
*(A + g) = k;
break;
}
}
}
}
for (i = 0; i < n; i++)
{
cout << *(A + i) << endl;
}
}
Лабораторная работа №12
№1
Найти самое длинное и самое короткое слово в заданном предложении.
#include <iostream> using namespace std; void main() { char s[30], s1[30]; int i, b = 0, k = 0, a, l = 0, t = 0; gets_s(s); for (i = 0; s[i] != '\0'; i++) { t++; } for (i = 0; i <= t+1; i++) { k++; if (*(s+i) == ' ' || *(s + i) == '\0') { if (k > b) { b = (k - 1); a = i; } k = 0; } } for (i = (a - b); i < a; i++) { *(s1+l) = *(s + i); l++; } cout << s1 << endl; } |
#include <iostream> using namespace std; void main() { char s[30], s1[30]; int i, b = 0, k = 0, a, l = 0, t = 0; gets_s(s); for (i = 0; s[i] != '\0'; i++) { t++; } for (i = 0; i <= t + 1; i++) { k++; if (s[i] == ' ' || s[i] == '\0') { if (k > b) { b = (k - 1); a = i; } k = 0; } } for (i = (a - b); i < a; i++) { s1[l] = s[i]; l++; } cout << s1 << endl; } |
№2
Написать программу, реализующую вставку в строку n символов, начиная с позиции k.
#include <stdio.h> #include <iostream> using namespace std; void main() { char s[30], s1[30]; int i, k; cout << "Vvedite stroky" << endl; gets_s(s); cout << "Vvedite slovo" << endl; cin >> s1; cout << "Vvedite chislo" << endl; cin >> k; for (i = 0; *(s1+i)!='\0'; i++) { *(s+k) = *(s1+i); k++; } cout << s << endl; } |
#include <stdio.h> #include <iostream> using namespace std; void main() { char s[30], s1[30]; int i, k; cout << "Vvedite stroky" << endl; gets_s(s); cout << "Vvedite slovo" << endl; cin >> s1; cout << "Vvedite chislo" << endl; cin >> k; for (i = 0; s1[i] != '\0'; i++) { s[k] = s1[i]; k++; } cout << s << endl; } |
Лабораторная работа №13
№1
Дана матрица А(N, N) и целое число m. Преобразовать матрицу по правилу: строку с номером M сделать столбцом с номером M, а столбец с номером M сделать строкой с номером M
#include <iostream> #include <ctime> using namespace std; void main() { const int n = 4; int a[n][n], i, j, m, m1, t = 0; srand((unsigned)time(NULL)); for (i = 0; i <= n; i++) { for (j = 0; j <= n; j++) { a[i][j] = (rand() % 8) + 1; } } for (i = 0; i <= n; i++) { for (j = 0; j <= n; j++) { t++; cout << a[i][j] << " "; if (t == (n + 1)) { cout << endl; t = 0; } } } cout << "Vvedite m" << endl; cin >> m; for (i = 0; i <= n; i++) { m1 = a[m][i]; a[m][i] = a[i][m]; a[i][m] = m1; } for (i = 0; i <= n; i++) { for (j = 0; j <= n; j++) { t++; cout << a[i][j] << " "; if (t == (n + 1)) { cout << endl; t = 0; } } } } |
#include <iostream> #include <ctime> using namespace std; void main() { const int n = 4; int a[n][n], i, j, m, m1, t = 0; srand((unsigned)time(NULL)); for (i = 0; i <= n; i++) { for (j = 0; j <= n; j++) { *(a[i]+j) = (rand() % 8) + 1; } } for (i = 0; i <= n; i++) { for (j = 0; j <= n; j++) { t++; cout << *(a[i] + j) << " "; if (t == (n + 1)) { cout << endl; t = 0; } } } cout << "Vvedite m" << endl; cin >> m; for (i = 0; i <= n; i++) { m1 = *(a[m] + i); *(a[m] + i) = *(a[i] + m); *(a[i] + m) = m1; } for (i = 0; i <= n; i++) { for (j = 0; j <= n; j++) { t++; cout << *(a[i] + j) << " "; if (t == (n + 1)) { cout << endl; t = 0; } } } } |
№2
Найти наиболее близкий к среднему арифметическому всех элементов матрицы В(N, N), а также номера строки и столбца, на пересечении которых он находится.
#include <iostream> #include <ctime> #include <locale> using namespace std; void main() { const int n = 4; int a[n][n], i, j, m = 0, m1 = 0, t = 0, kek = 0, lol = 100, i1, j1; srand((unsigned)time(NULL)); for (i = 0; i <= n; i++) { for (j = 0; j <= n; j++) { a[i][j] = (rand() % 98) + 1; m++; } } for (i = 0; i <= n; i++) { for (j = 0; j <= n; j++) { m1++; cout << a[i][j] << " "; if (m1 == (n + 1)) { cout << endl; m1 = 0; } } } for (i = 0; i <= n; i++) { for (j = 0; j <= n; j++) { t += a[i][j]; } } t = t / m; cout << t << endl; for (i = 0; i <= n; i++) { for (j = 0; j <= n; j++) { kek = abs(t - a[i][j]); if (kek < lol) { lol = kek; i1 = i; j1 = j; } } } cout << "Chislo " << a[i1][j1] << " Stroka " << i1 + 1 << " Stolbec " << j1 + 1 << endl; }
|
#include <iostream> #include <ctime> #include <locale> using namespace std; void main() { const int n = 4; int a[n][n], i, j, m = 0, m1 = 0, t = 0, kek = 0, lol = 100, i1, j1; srand((unsigned)time(NULL)); for (i = 0; i <= n; i++) { for (j = 0; j <= n; j++) { *(a[i] + j) = (rand() % 98) + 1; m++; } } for (i = 0; i <= n; i++) { for (j = 0; j <= n; j++) { m1++; cout << *(a[i] + j) << " "; if (m1 == (n + 1)) { cout << endl; m1 = 0; } } } for (i = 0; i <= n; i++) { for (j = 0; j <= n; j++) { t += *(a[i] + j); } } t = t / m; cout << t << endl; for (i = 0; i <= n; i++) { for (j = 0; j <= n; j++) { kek = abs(t - *(a[i] + j)); if (kek < lol) { lol = kek; i1 = i; j1 = j; } } } cout << "Chislo " << *(a[i1] + j1) << " Stroka " << i1 + 1 << " Stolbec " << j1 + 1 << endl; }
|
Лабораторная работа №14
1. В массиве, состоящем из вещественных элементов, вычислить количество элементов массива, больших С, и произведение элементов массива, расположенных после максимального по модулю элемента.
2. Проверить, есть ли в матрице хотя бы одна строка, содержащая элемент, равный нулю, и найти ее номер. Уменьшить все элементы матрицы на значение первого элемента найденной строки.
#include <iostream>
#include <ctime>
using namespace std;
void arrau();
void matrix();