bsuir.info
БГУИР: Дистанционное и заочное обучение
(файловый архив)
Вход (быстрый)
Регистрация
Категории каталога
Другое [46]
Форма входа
Логин:
Пароль:
Поиск
Статистика

Онлайн всего: 3
Гостей: 3
Пользователей: 0
Файловый архив
Файлы » Информатика / ИиТП » Другое

1 курс 1сем 18вариант
Подробности о скачивании 28.11.2011, 19:29
«Белорусский Государственный Университет
Информатики и Радиоэлектроники»
Вычислительные машины системы и сети

Контрольная работа №1
По предмету «ОАиП»
Студента гр.№

Вариант - 18

Минск 2010
Задание 18 (1)
Условие:
Заданны массивы А[1..n] и B[1..n]. Необходимо найти такие индексы i0 и j0, что ai0 + bjo = max (ai +bj), где 1 ≤ I ≤ n, 1 ≤ j ≤ m,
I < j.
Решение: Задаем массивы A и В. Затем ищем i0 и j0 чтоб ai0 + bjo = max (ai +bj).

Блок-схема.

Листинг программы:
#include <conio.h>

#include <vcl.h>
#pragma hdrstop

//---------------------------------------------------------------------------

#pragma argsused

int main(int argc, char* argv[])
{
int n,m,i0,j0,max, *a, *b;

printf("Insert n and m: ");
scanf("%d%d",&n,&m);
a=new int[n];
b=new int[m];

printf("Insert n digit to array A\n");
for(int i=0; i<n; i++)
{
scanf("%d",&*(a+i));
}

printf("Insert m digit to array B\n");
for(int i=0; i<m; i++)
{
scanf("%d",&*(b+i));
}

max=*(a+0)+*(b+0);

for(int i=0; i<n; i++)
{
for(int j=0; j<m; j++)
{
int temp=*(a+i)+*(b+j);
if(temp>max)
{
i0=i;
j0=j;
max=temp;
}
}
}

printf("i0=%d, j0=%d, max=%d\n",i0+1,j0+1,max);

getch();
delete []a;
delete []b;
return 0;
}
//---------------------------------------------------------------------------
Результат работы программы:

Задание 18 (2)
Условие:
Ввести строку и определить наибольшее записанное в этой строке целое число ( без учета знака числа ). Например, для строки <<sdfvgsd1.9fdmjgvb15.25dnj05>> наибольшее целое число 15. Результат вывести на экран. Стандартных функций для работы со строками не использовать.

Блок-схема:


//---------------------------------------------------------------------------
#include <stdio.h>
#include <conio.h>
#include "math.h"

#include <vcl.h>
#pragma hdrstop

//---------------------------------------------------------------------------

#pragma argsused
int main(int argc, char* argv[])
{
char string[100], digit[100];
int ends, max=0;

puts("Insert string (max length=100):");
gets(string);

ends=0;
while(*(string+ends)!='\0')
{
ends++;
}

for(int i=0; i<ends; i++)
{
if(*(string+i)=='0' ||
*(string+i)=='1' ||
*(string+i)=='2' ||
*(string+i)=='3' ||
*(string+i)=='4' ||
*(string+i)=='5' ||
*(string+i)=='6' ||
*(string+i)=='7' ||
*(string+i)=='8' ||
*(string+i)=='9')
{
int j=0;
while(true)
{
*(digit+j)=*(string+i);
j++;
i++;
if(*(string+i)!='0' &&
*(string+i)!='1' &&
*(string+i)!='2' &&
*(string+i)!='3' &&
*(string+i)!='4' &&
*(string+i)!='5' &&
*(string+i)!='6' &&
*(string+i)!='7' &&
*(string+i)!='8' &&
*(string+i)!='9')
{
*(digit+j)='\0';
int temp=0;
for(int p=0;p<j;p++)
{

temp+=(*(digit+p)-48)*pow(10,j-p-1);
}
if(temp>max)
{
max=temp;
}
break;
}
}
}
}

printf("Max number=%d",max);
getch();
return 0;
}
//---------------------------------------------------------------------------
Категория: Другое | Добавил: ctpaxxxx
Просмотров: 1590 | Загрузок: 9
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]