Московский Государственный институт электроники и математики
(Технический университет)
Кафедра Вычислительные системы и сети
Отчет по домашней работе
по дисциплине «Программирование на ЯВУ»
Выполнил:
студент группы С-31
Новиков А.Ю.
Вариант 18
Москва, 2009 год
Задание 1.
28. Дана последовательность действительных чисел a1 ≤ a2 ≤ ... ≤ аn. Вставить действительное число b в нее так, чтобы последовательность осталась неубывающей
Исходный код программы
#include <math.h>
#include <stdio.h>
int main()
{
float arr[100], b;
int n,i,j,r;
FILE *file;
printf("DZ\n");
printf("Novikov Aleksey C-31\n");
printf("Vstavit' v neub posledovatel'nost' chislo\n");
printf("Chislo elementov posledovatel'nosti \n");
scanf("%d",&n);
printf("Elementy posledovatel'nosti: \n");
for (int i = 0; i < n; i++)
{
printf ("a[%d",i+1);
printf("]= ");
scanf ("%f",&arr[i]);
}
printf("vvedite chislo kotoroe nugno vstavit' \n");
scanf("%f",&b);
i=0;
while (i <= n && b>arr[i])
{
i=i+1;
}
for ( j=n+1; j>=0 && j >= i+1; j--)
{
arr[j] = arr[j-1];
}
arr[i] = b;
n=n+1;
printf("preobrazovannaya posledovatelnost'\n");
for (i=0;i<n;i++)
{
printf(" a[%d", i+1);
printf("]=%g",arr[i]);
}
printf("\n");
printf("Xotite li Vi soxranit' rezultati v fail? (1/0): ");
scanf("%d",&r);
switch (r)
{
case 1:
{
printf("Vvedite im9 faila: ");
char fname[50];
scanf("%s",fname);
file=fopen(fname,"w");
for (i=0;i<n;i++)
{
fprintf(file,"%g ",arr[i]);
}
fprintf(file,"\n");
fclose(file);
}
case 0:
{
return 0;
}
default:
{
return 0;
}
}
}
Блок-схема алгоритма


Листинг программы

Задние 2
Сформировать квадратную матрицу порядка n по заданному образцу

Исходный код программы
#include <math.h>
#include <stdio.h>
int main()
{
int a[100][100],i,j,k,l,n,m,r,z;
FILE *file;
printf("Vvedite chislo strok matrici\n");
scanf("%d",&m);
n=m-1;
for (i=0;i<=n;i++)
{
for (j=0;j<=n;j++)
{
a[i][j]=0;
}
}
l=1;
k=n;
for (i=n;i>=0;i--)
{
for (j=0;j<=k;j++)
{
a[i][j]=j+l;
}
l++;
k--;
}
for (i=0;i<=n;i++)
{
for (j=0;j<=n;j++)
{
printf("%d",a[i][j]);
}
printf("\n");
}
printf("Xotite li Vi soxranit' rezultati v fail? (1/0): ");
scanf("%d",&r);
switch (r)
{
case 1:
{
printf("Vvedite im9 faila: ");
char fname[50];
scanf("%s",fname);
file=fopen(fname,"w");
for (int k=0;k<=n;k++)
{
for (int z=0;z<=n;z++)
{
fprintf(file,"%d ",a[k][z]);
}
fprintf(file,"\n");
}
fclose(file);
}
case 0:
{
return 0;
}
default:
{
return 0;
}
}
}
Блок-схема алгоритма программы

Листинг программы
DZ
Vvedite chislo strok matrici:
<m>
a[1][1]..a[1][m]
.
.
a[m][1]..a[m][m]
Xotite li Vi soxranit' rezultati v fail? (1/0): 0
Vvedite im9 faila
Задача 3
144. Составить программу нахождения наибольшего общего делителя четырех натуральных чисел.
Исходный код
#include <math.h>
#include <stdio.h>
void vfail (int rez)
{
FILE *file;
printf("Zapis' rezultata v fail \n");
{
printf("Vvedite im9 faila: ");
char fname[50];
scanf("%s",fname);
file=fopen(fname,"w");
fprintf(file,"NOD= %d\n",rez);
fclose(file);
}
}
void vivod (int a)
{
printf("NOD=%d \n",a);
}
int main()
{
int a,b,c,d,nod,del;
nod=1;
printf("DZ\n");
printf("Novikov Aleksey, C-31\n");
printf("Variant 18\n");
printf("Naiti NOD 4 natural'nix chisel\n");
printf ("Vvedite 4 natural'nix chisla\n");
scanf ("%d %d %d %d",&a, &b, &c, &d);
for (int i=1; i<=a; i++)
{
if (a%i==0 && b%i==0 && c%i==0 && d%i==0)
{
del=i;
}
if (nod<del)
{
nod=del;
}
}
vivod(nod);
vfail(nod);
printf ("Najmite 'Enter' dly vihoda.");
getchar();
return 0;
}
Блок-схема главного алгоритма

Блок-схема алгоритма vivod программы

Листинг программы
DZ
Novikov Aleksey C-31
Variant 18
Naiti NOD 4 natural’nix chisel
Vvedite 4 natural’nix chisla
<a> <b> <c> <d>
Nod=<nod>
Задача 4
Дана строка, содержащая текст, Получить новую строку, заменив в исходной строке все заглавные буквы строчными и наоборот.
Исходный код программы
#include <iostream>
#include <cstdio>
#include <cctype>
int main()
{
char str[100];
printf(" Vvedyte stroku: : \n");
gets(str);
printf( " Ishodnaya stroka: %s\n",str );
for(int i = 0; str[i]; i++)
{
if(islower(str[i])) str[i] = toupper(str[i]);
//else if(isupper(str[i])) str[i] = tolower(str[i]);
}
printf(" Stroka s invertyrovannym regystrom bukv: %s\n",str );
return 0;
}
Блок-схема алгоритма программы

Листинг программы
Vvedite stroku
<str>
Ishodnaya stroka: <str>
Stroka s invertirovannym registrom bukv: <str>
