Московский Государственный институт электроники и математики
(Технический университет)
Кафедра Вычислительные системы и сети
Отчет о домашней работе
по дисциплине «Программирование на ЯВУ»
Выполнил:
студент группы С-31
Вариант 15
Москва, 2009 год
Постановка задачи.
Программа 1:
Даны целые числа а1, а2, ..., аn и b1, b2, ..., bn. Преобразовать последовательность bl, b2, ..., bn по правилу: если аi ≤ 0, то bi увеличить в 10 раз, иначе bi заменить нулем (i = 1, 2, ..., n).
Программа 2:
Дан линейный массив x1, х2, ..., хn-1, хn. Получить действительную квадратную матрицу порядка n.
Программа 3:
Заменить отрицательные элементы линейного массива их модулями, не пользуясь стандартной функцией вычисления модуля. Подсчитать количество произведенных замен.
Программа 4:
Дана строка. Подсчитать количество букв k в последнем ее слове.
Программа 1.
1. 1. Исходный код
{
cout<<"Vvediti colichestvo elementov v oboix massivah"<<endl;
int a[100],b[100], n,i;
cin>>n;
for(i=0;i<n;i++)
{
cout << "Vvedite " << i+1 << " element massiva A = ";
cin >> a[i];
cout << "Vvedite " << i+1 << " element massiva B = ";
cin >> b[i];
if (a[i]<=0) b[i]=b[i]*10;
else b[i]=0;
}
cout << endl << endl;
cout << "Massiv B:" << endl;
for(i=0;i<n;i++) cout << b[i] << " ";
}
1. 2. Схема алгоритма кода программы.

-
3. Листинг вывода программы.

Программа 2 (Ввод из файла, сохранение результата в файл).
2. 1. Исходный код.
Cout<<”Iz Leneinogo massiva polycit deistvitelnuy kvadratnuy matricy poradka n”<<endl;
FILE *fl;
if ((fl = fopen(“dt3.txt”, “rt”))
== NULL)
{
fprintf(stderr, “Fail ne naiden\n”);
}
else { cout<<”Massiv prochitan iz faila dt3.txt”<<endl;}
int a[50][50], n=8,i=0,j=0;
char s[8];
for (j=0; j<=n; j++)
{
fgets(s,8,fl);
a[0][j]=atoi(s);
}
for(i=1;i<n;i++) for(j=0;j<n;j++) a[i][j]=pow(a[0][j],i+1);
for(i=0;i<n;i++) {for(j=0;j<n;j++) printf(“%8d “,a[i][j]); cout << endl;}
char buf[50];
cout << “Vvedite imya faila:” << endl;
char d[100];
cin >> d;
FILE *file;
char* file_name = d;
char load_string[100] = “none”;
file = fopen( file_name, “a” );
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
sprintf(buf,” %d”,a[i][j]);
fputs(buf, file );
}
fputs(“\n”, file );
}
fclose( file );
}
2. 2. Схема алгоритма кода программы.


2. 3. Листинг вывода программы.

Программа 3.
3. 1. Исходный код.
int modul(int t)
{t=t*t;
t=sqrt(t);
return t;
}
{int j,i,n,t,k;
int a[255];
j=0;
k=0;
cout<<"Zamenit otricatelnie elementi massiva ih modulami bez ispolzovania"<<endl;
cout<<"standartnoy funkcii vichislenia modula"<<endl;
cout<<"Podschitat kolichestvo proizvedennih zamen"<<endl;
cout<<"Vvedite colichestvo elementov massiva"<<endl;
cin>>n;
for (i=0; i<n; i++)
{
a[i]=-(rand() % 100);
}
cout <<"Ishodnii massiv"<<endl;
for (i=0; i<n; i++)
{
cout <<" "<<a[i];
}
cout <<" "<<endl;
cout <<"Preobrazovanii massiv"<<endl;
for (i=0; i<n; i++)
{
if (a[i]<0)
{t=a[i]; a[i]=modul(t);k++;}
}
for (i=0; i<n; i++)
{
cout <<" "<<a[i];
cout<<endl;
cout<<"Kolichestvo proizvedennih zamen="<<k<<endl;
}
3. 2. Схема алгоритма кода программы.

3. 3. Листинг вывода программы.

Программа 4.
4. 1. Исходный код.
{
int j,i;
char s[255];
j=0;
cout<<"Opredelit kolichestvo bykv k v poslednem slove stroki"<<endl;
cout<<"Vvedite stroky"<<endl;
gets (s);
for (i=strlen(s); i>=0; i--)
{
if (s[i] == 'k')
j++;
if (s[i] == ' ')
i=0;
}
cout<<"Kolichestvo bykv k v poslednem slove stroki="<<j<<endl;
}
4. 2. Схема алгоритма кода программы.

4. 3. Листинг вывода программы.

