4. Дано вещественное число A и целое число N (> 0). Вывести все целые степени числа A от 1 до N.
5. Дано вещественное число A и целое число N (> 0). Вывести 1 + A + A2 + A3 + ... + AN.
Методические рекомендации по проведению СРСП.
Контрольный пример 1. Нарисовать блок-схему и написать программу для вычисления выражения с использованием циклических структур
(рисунок 3).
Контрольный пример 2. Нарисовать блок-схему и написать программу для вычисления выражения с использованием циклических структур
(рисунок 4).
/* пример 1 */ #include <stdio. h> #include <math. h> #include <conio. h> main () { float i, f, n, p; clrscr(); printf("Enter n\n"); scanf("%n", &n); f=p=1; for(i=1;i<=n;i++) { f*=i; p*=2+1/f; } printf("P = %6.2f", p); getch(); return 0; } | /* пример 2*/ #include <stdio. h> #include <math. h> #include <conio. h> #define e 0.01 main () { float k, f, s, ak; clrscr(); f=1; s=k=0; do { k++; f*=k; ak=pow(-1,k)*(k+1)/f; s+=ak; } while (fabs(ak)>e); printf("S = %6.2f k = %4.0f", s, k); getch(); return 0; } |
Рисунок 3 |
Рисунок 4 |
Рекомендуемая литература:
1осн[134-153], 2осн[211-255], 3осн[57-63], 5доп[28-41],6доп[116-126], 7доп[11-15]
Тема 4. Алгоритмическое описание, составление программ обработки одномерного массива.
Форма проведения: Решение задач.
Задание. Реализовать обработку одномерного массива, как указано в варианте. Составить блок-схему алгоритма и написать программу.
Варианты заданий:
1. Дан массив размера N. Вывести индексы массива в том порядке, в котором соответствующие им элементы образуют возрастающую последовательность.
2. Дан массив размера N. Вывести вначале его элементы с четными индексами, а затем — с нечетными.
3. Дан целочисленный массив A размера 10. Вывести номер первого из тех его элементов A[i], которые удовлетворяют двойному неравенству: A[1] < A[i] < A[10]. Если таких элементов нет, то вывести 0.
4. Дан целочисленный массив размера N. Преобразовать его, прибавив к четным числам первый элемент. Первый элемент массива не изменять.
5. Дан целочисленный массив размера N. Вывести вначале все его четные элементы, а затем — нечетные.
Методические рекомендации по проведению СРСП.
Контрольный пример 1. Дан массив А(100). Определить количество положительных элементов с четными номерами и сумму отрицательных элементов с нечетными номерами (рисунок 5).
Контрольный пример 2. Дан массив А(100). Найти среднеарифметическую сумму положительных элементов, следующих за первым по порядку нулевым элементом (рисунок 6).
/* пример 1 */
#include <stdio. h>
#include <conio. h>
#define n 100
main()
{ int i, s, k, a[n];
clrscr();
for(i=0; i<n; i++)
scanf(“%d”, &a[i]);
s=k=0;
for(i=0; i<n; i+=2)
{ if (a[i]<0) s+=a[i];
if (a[i+1]>0) k++;}
printf(“k = %5d s = %5d”, k, s);
getch();
return 0; }
/* пример 2 */
#include <stdio. h>
#include <conio. h>
#define n 100
main()
{ int i, j, k, a[n]; float s;
clrscr();
for(i=0; i<n; i++)
scanf(“%d”, &a[i]);
s=k=0;
for(i=0; i<n-1; i++)
if (a[i]==0) {
for(j=i+1; j<n; j++)
if (a[j]>0) { s+=a[j]; k++; }
if (k>0) {s/=k; goto m1; } }
m1: printf(“s = %6.2f”, s);
getch();
return 0; }
|
| |
Рисунок 5 |
Рисунок 6 |
|
Рекомендуемая литература:
1осн[223-253], 2осн[244-255], 5доп[41-46], 7доп[15-23]
Тема 5. Алгоритмическое описание, составление программ обработки двумерного массива.
Форма проведения: Решение задач.
Задание. Задав двумерный массив вещественных данных (матрицу А), реализовать его обработку, как указано в варианте. Исходные данные задать самостоятельно, учитывая специфику задачи. Составить блок-схему алгоритма и написать программу.
Варианты заданий:
1. Дано число k (0 < k < 11) и матрица размера 4 x 10. Найти сумму и произведение элементов k-го столбца данной матрицы.
2. Дана матрица размера 5 x 9. Найти суммы элементов всех ее четных столбцов.
3. Дана матрица размера 5 x 10. Найти минимальное значение в каждом столбце.
4. Дана матрица размера 5 x 10. В каждой строке найти количество элементов, больших среднего арифметического всех элементов этой строки.
5. Дана матрица размера 5 x 10. Преобразовать матрицу, поменяв местами минимальный и максимальный элемент в каждой строке.
Методические рекомендации по проведению СРСП.
Контрольный пример 1. Дан массив А(10, 10). В области, лежащей не выше главной диагонали, определить минимум, а в области, лежащей не выше побочной диагонали, сумму элементов. Присвоить минимальному элементу полученное значение суммы (рисунок 7).
Контрольный пример 2. По матрице А(20, 20) построить массив В(20), присвоив В(I) значение 1, если в строке с номером I матрицы А число положительных элементов не меньше числа отрицательных, и значение 0 – в противном случае (рисунок 8).
/* пример 1 */ #include <stdio. h> #include <conio. h> #define n 10 main() { int i, j, m, p, min, s, a[n][n]; clrscr(); for(i=0; i<n; i++) for(j=0; j<n; j++) scanf(“%d”, &a[i][j]); s=a[0][n-1]; min=a[0][0]; m=p=0; for(i=1; i<n; i++) for(j=0; j<n; j++) { if (j<=i) { if (a[i][j]<min) {min=a[i][j]; m=i; p=j; } if (j>=n-1-i) s+=a[i][j]; } a[m][p]=s; for(i=0; i<n; i++) { for(j=0; j<n; j++) printf(“%3d”, a[i][j]); printf(“\n”); } getch(); return 0; } | /* пример 2 */ #include <stdio. h> #include <conio. h> # define n 10 main() { int i, j, k, p, a[n][n], b[n]; clrscr(); for(i=0; i<n; i++) for(j=0; j<n; j++) scanf(“%d”, &a[i][j]); for(i=0; i<n; i++) { p=k=0; for(j=0; j<n; j++) { if (a[i][j]>0) p++; else if (a[i][j]<0) k++; if (p>=k) b[i]=1; else b[i]=0; } for(i=0; i<n; i++) printf(“%3d”, b[i]); getch(); return 0; } |
Контрольный пример 3. По матрице А(20, 20) построить массив В(20) по правилу: В(J) присвоить 1, если в столбце с номером J матрицы А есть хотя бы один отрицательный элемент, и значение 0 – в противном случае (рисунок 9).
Контрольный пример 4. По матрице А(10, 10) построить массив В(10) по правилу: В(1) равен сумме элементов главной диагонали, В(2) – сумме элементов диагонали, лежащей ниже главной и параллельно ей и т. д. (рисунок 10).
/* пример 3 */ #include <stdio. h> #include <conio. h> #define n 20 main() { int i, j, a[n][n], b[n]; clrscr(); for(i=0; i<n; i++) for(j=0; j<n; j++) scanf(“%d”, &a[i][j]); for(j=0; j<n; j++) { b[j]=0; for(i=0; i<n; i++) if (a[i][j]<0) { b[j]=1; break; }} for(i=0; i<n; i++) printf(“%3d”, b[i]); getch(); return 0; } | /* пример 4 */ #include <stdio. h> #include <conio. h> #define n 10 main() { int i, j, s, k, a[n][n], b[n]; clrscr(); for(i=0; i<n; i++) for(j=0; j<n; j++) scanf(“%d”, &a[i][j]); for(j=0; j<n; j++) { s=0; for(i=j; i<n; i++) s+=a[i][i-j]; b[j]=s; } for(i=0; i<n; i++) printf(“%3d”, b[i]); getch(); return 0; } |
Рисунок 7 |
|
|
|
|
|

Рисунок 10
Рекомендуемая литература:
1осн[223-253], 2осн[244-255], 5доп[41-46], 7доп[15-23]
|
Из за большого объема этот материал размещен на нескольких страницах:
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 |










Рисунок 8
Рисунок 9
