Лабораторная работа 25
№ 3, с. 25 Написать программу, которая читает с клавиатуры строку символов. Необходимо заменить в строке все латинские буквы на следующие по алфавиту буквы, а букву 'z' заменить на 'a'.Вывести результат на экран. Длина строки не вводится, а определяется в программе. Если строка не удовлетворяет условию, выдать сообщение об ошибке и предложить ввести снова. Код: #include <stdio.h> #include <iostream> using namespace std; void main() { setlocale (LC_ALL, "Rus"); char in_string[500]; int k,i; printf( "Введите строку: \n"); gets(in_string); printf( "Строка\n%s\n", in_string); k=(int)strlen( in_string); printf("%d\n",k); for(i=0;i<k;i++) { if(in_string[i]=='z') in_string[i]='a'; if (((in_string[i]>'a')&&(in_string[i]<'z'))||((in_string[i]>'A')&&(in_string[i]<'Z'))) in_string[i] =in_string[i]+1; } printf( "Преобразованная строка:\n%s\n", in_string);
}
№5, с.26 (5б) Написать программу, которая читает с клавиатуры строку символов. Необходимо перед каждым знаком '=' вставить символ, стоящий за ним, если таковой имеется (если отсутствует – оставить без изменения). Вывести результат на экран. Длина строки не вводится, а определяется в программе. Если строка не удовлетворяет условию, выдать сообщение об ошибке и предложить ввести снова.
#include <stdio.h> #include <iostream> void main() { setlocale (LC_ALL, "Rus"); char X[300]; int i,n=0; printf("Введите строку: \n",n); for(i=0;(X[i]=getchar())!='\n';i++) n++; printf("Преобразованная строка: \n"); for(i=0;i<n;i++) {if(X[i+1]=='=') {putchar(X[i]); putchar(X[i+2]);} else putchar(X[i]);} printf("\n"); }
Лабораторная работа №8 Написать программу, которая определяет номер строки квадратной матрицы, сумма элементов которой максимальна. Массив заполняется пользователем с клавиатуры. Результат вывести на экран. #include <stdio.h> #include <iostream> #define N 3 void vvod(int a[][N], int m, int n); void summ(int a[][N], int m, int n); void vivod (int a[][N], int m, int n); void main() { setlocale (LC_ALL, "Russian"); int b[N][N], m, n, A, max; printf ("Введите количество строк:\n"); scanf ("%d", &m); printf ("Введите количество столбцов:\n"); scanf ("%d", &n); vvod(b, m, n); vivod(b, m, n); summ (b, m, n); } void vvod(int a[][N], int m, int n ) { setlocale (LC_ALL, "Russian"); int i,j; printf ("Введите массив:\n"); for (i=0;i<m;i++) for (j=0;j<n;j++) scanf("%d",&a[i][j]); }
void vivod (int a[][N], int m, int n) { setlocale (LC_ALL, "Russian"); int i,j; printf("Полученная матрица:\n"); for (i=0; i<m; i++) { for (j=0; j<n; j++) printf("%5d", a[i][j]); printf("\n"); }} void summ(int a[][N], int m, int n) { int i,j,sum,max,k; for(i=0;i<m;i++) { sum=0; for (j=0;j<n;j++) {sum+=a[i][j];} if (i==0) max=sum; else if (max<sum) {max=sum; k=i;}} printf ("Максимальная сумма %d строки равна %d\n",(k+1), max); }
Лабораторная № 23
1. Написать функцию, в которой внутри будет переменная (static), сохраняющая количество раз, сколько была вызвана функция за время выполнения программы. #include <iostream> using namespace std; void main(void) {void func (int k); setlocale(LC_ALL,"Russian"); int k, n; printf("Введите количество раз"); scanf("%d",&n); for(k=0;k<n;k++) func(k);} void func (int k) {static int a=0; a++; printf("Функция вызвана %d разa\n",a);} 2. В функции одного исходного файла (1.cpp) объявить ссылку на переменную (extern) другого файла (2.cpp). Умножить ее на переменную, введенную в файле 1.cpp и вывести результат на экран. 1.cpp extern int A=10; 2.cpp #include <iostream> void main() { extern int A; int P=1, B=5; P=A*B;
printf ("P=%d\n",P); } 3.Имеются два файла 1.cpp и 2.cpp. В каждом из файлов ввести с клавиатуры по одной переменной. Вывести на экран переменные другого файла. 1.cpp #include <stdio.h> int A; void main(void) {void Func (int ); int t=0; printf(" Enter A \n"); scanf("%d",&A); Func (t); extern int B; printf(" N2 = %d\n",B);}
2.cpp #include <stdio.h> int B; void Func (int t) {printf(" Enter B \n"); scanf("%d",&B); extern int A; printf(" N1 = %d\n",A);}
4.Написать функцию вычисления факториала (величина переменной должна быть очень большой) с учетом того, чтобы она выполнялась максимально быстро, переменная должна быть объявлена классом register. #include <iostream> void main() {register int i,fact=1,j; printf("Vvedite i\n"); scanf("%d",&i); for(j=i;j>=1;j--) fact=fact*j; printf("Fact=%d\n",fact);}
Лабораторная № 22(29,30,31) Написать программу нахождения суммы четных положительных элементов и нечетных положительных, а также произведение положительных. Массив заполняется пользователем с клавиатуры. Результат вывести на экран.
#include <stdio.h> #include <iostream> #include <locale> const int n=3; int func1 (int arr[n][n], int n); int func2 (int arr[n][n], int n); int func_pr (int arr[n][n], int n); void main() { setlocale (LC_ALL, "Rus"); int arr[n][n], *p, i, j; p=&arr[0][0]; printf ("Введите массив\n"); for (i=0; i<n; i++) { for (j=0; j<n; j++,p++) { scanf ("%d", p); }
} printf ("Сумма нечетных положительных элементов равна %d\n", func1(arr, n)); printf ("Сумма четных положительных элементов равна %d\n", func2(arr, n)); printf ("Сумма положительных элементов равна %d\n", func_pr(arr, n)); } int func1 (int arr[n][n], int n) { int i, j, sum=0, *p; p=&arr[0][0]; for (i=0; i<n; i++) { for (j=0; j<n; j++,p++) { if ((*p%2)&&(*p>0)) { sum=sum+*p; } } } return (sum); } int func2 (int arr[n][n], int n) { int i, j, sum=0, *p; p=&arr[0][0]; for (i=0; i<n; i++) { for (j=0; j<n; j++,p++) { if ((*p%2==0)&&(*p>0)) { sum=sum+*p; } } } return (sum); } int func_pr (int arr[n][n], int n) { int i, j, pr=1, *p; p=&arr[0][0]; for (i=0; i<n; i++) { for (j=0; j<n; j++,p++) { if (*p>0) { pr=pr**p; } } } return (pr); }
№9 стр 21
Написать программу нахождения в заданной матрице седловой точки. Седловая точка - это максимальный элемент в столбце и одновременно минимальный в строке.
#include <stdio.h> #include <iostream> #include <locale> const int n=3; void func_str_min (int arr[n][n], int *b[n], int n); void func_stl_max (int arr[n][n], int *k[n], int n); void main() { setlocale (LC_ALL, "Rus"); int arr[n][n], *p, *u1[n], *u2[n], i, j; p=&arr[0][0]; printf ("Введите массив\n"); for (i=0; i<n; i++) { for (j=0; j<n; j++,p++) { scanf ("%d", p); }
} p=&arr[0][0]; func_str_min (arr,u1,n); p=&arr[0][0]; func_stl_max (arr,u2,n); for (i=0; i<n; i++) { for (j=0; j<n; j++) { if (u1[i]==u2[j]) { printf (" Элемент [%d][%d]=%d является седловой точкой\n", i, j,*u1[i]); } } }
} void func_str_min (int arr[n][n], int *b[n], int n) { int min, i, j; for (i=0; i<n; i++) { min=*(*(arr+i)+0); b[i]=&arr[i][0]; for (j=0; j<n; j++) { if (min>*(*(arr+i)+j)) { min=*(*(arr+i)+j); b[i]=&arr[i][j]; } } } } void func_stl_max (int arr[n][n], int *k[n], int n) { int max, i, j; for (i=0; i<n; i++) { max=*(*(arr+0)+i); k[i]=&arr[0][i]; for (j=0; j<n; j++) { if (max<(*(*(arr+j)+i))) { max=*(*(arr+j)+i); k[i]=&arr[j][i]; } } } }
Популярное: Почему двоичная система счисления так распространена?: Каждая цифра должна быть как-то представлена на физическом носителе... Генезис конфликтологии как науки в древней Греции: Для уяснения предыстории конфликтологии существенное значение имеет обращение к античной... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (1126)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |