
27.12.2009, 20:25
|
|
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
С нами:
10386906
Репутация:
599
|
|
человеческая глупость не знает границ.
|
|
|

28.12.2009, 14:09
|
|
Новичок
Регистрация: 30.07.2009
Сообщений: 4
С нами:
8832653
Репутация:
0
|
|
1) Из заданного текста выбрать и напечатать те символы, которые встречаются в нем ровно один раз (в порядке, как они встречаются в тексте)
2) Дан файл f, компоненты которого являются целыми числами. Найти количество квадратов простых чисел среди компонент.
3) Даны символьные файлы f и g. Определить совпадают ли компоненты файла f с компонентами файла g. Если нет то получить номер первой компоненты, в которой исходные файлы отличаются между собой. В случае когда один из файлов имеет n компонент (n>=0) и повторяет начало другого (более длинного файла), ответом должно быть число n+1
Задачи по C++.
|
|
|

28.12.2009, 14:19
|
|
Постоянный
Регистрация: 06.06.2007
Сообщений: 575
С нами:
9963746
Репутация:
180
|
|
Сообщение от xanser
1) Из заданного текста выбрать и напечатать те символы, которые встречаются в нем ровно один раз (в порядке, как они встречаются в тексте)
2) Дан файл f, компоненты которого являются целыми числами. Найти количество квадратов простых чисел среди компонент.
3) Даны символьные файлы f и g. Определить совпадают ли компоненты файла f с компонентами файла g. Если нет то получить номер первой компоненты, в которой исходные файлы отличаются между собой. В случае когда один из файлов имеет n компонент (n>=0) и повторяет начало другого (более длинного файла), ответом должно быть число n+1
Задачи по C++.
1. Бежим по символьно и каждый символ заносишь в хеш таблицу, потом распечатываешь те у который значение равно 1, (символ в этом случае ключ, а в хеш таблице они будут храниться в томже поряднке в каком в тексте встречаются)
2. эм, ну, если я правильно понял, считываешь число из файла, возводишь в квадрат, смотришь простое ли это число, если да увеличиваешь счетчик на +1
3. ...
PS. я видно не в тему, тут не объяснять, а делать за вас надо ?
Последний раз редактировалось cupper; 28.12.2009 в 14:24..
|
|
|

28.12.2009, 15:26
|
|
Новичок
Регистрация: 30.07.2009
Сообщений: 4
С нами:
8832653
Репутация:
0
|
|
интересно, спасибо, почитаю про хеш таблицы. задачи простые, но с++ не знаю совершенно. на паскале бы решил без проблем
|
|
|

28.12.2009, 18:27
|
|
Banned
Регистрация: 24.12.2009
Сообщений: 141
С нами:
8622379
Репутация:
45
|
|
2 xanser
1-я (пишу без лабуды) (бью прямо тут без проверки)
Код:
int i,j,fl;
char str[]="jhb sdjcnweofnlm wefoi-pokas lknlqkmwdqw";
for(i=0;*(str+i)!=0;i++)
{
for(j=0,fl=0;*(str+j)!=0 && fl==0;j++)
if(*(str+i)==*(str+j) && i!=j)
fl=0;
if(fl==0)
printf("%c",*(str+i));
}
правильно ли я понял что компонентами называются лексемы разделенные пробелом запятой точкой вопросительным и восклицательным знаками а так же переводом строки?
если ДА , то
2-я (пишу без лабуды) (бью прямо тут без проверки)
P.S. проверка на простое по Кнут-у
Код:
int havegotfield(char *sourcestr,char *deststr,int nelement,char *delimiterStr,int mode)
{
int i;
int mcnt;
char tstr[300];
int flrez=0;
int pstr=0;
int prepfl;
*(deststr)=0;
if(strchr(delimiterStr,*(sourcestr))!=0)
prepfl=0;
else
prepfl=1;
for(i=0,mcnt=1,flrez=0,prepfl=0;*(sourcestr+i)!=0;i++)
{
if(strchr(delimiterStr,*(sourcestr+i))!=NULL)
{
if(mode==0)
{
if(prepfl!=0)
{
if(mcnt<=nelement)
mcnt++;
else
break;
}
prepfl=0;
}
else
{
if(mcnt<=nelement)
mcnt++;
else
{
flrez=1;
break;
}
}
}
else
{
if(mcnt==nelement)
{
*(deststr+pstr)=*(sourcestr+i);
pstr++;
flrez=1;
}
prepfl=1;
}
}
*(deststr+pstr)=0;
return flrez;
}
unsigned long numb;
int simpl[10]={2,3,5,7,11,13,17,19,23,29};
long test_simple(unsigned long num)
{
int i;
unsigned long p,j;
long rez;
if(num<100)
{
for(i=0;i<10;i++)
if((numb/simpl[i])*simpl[i]==numb && numb!=simpl[i])
return -2;
for(i=0;i<10;i++)
if((num/simpl[i])*simpl[i]==num && num!=simpl[i])
return -1;
return num;
}
else
{
p=sqrt(num);
for(j=0;j<p-sqrt(p);j++)
{
rez=test_simple(p-j);
if(rez!=-1)
{
if(rez==-2)
return -2;
if((numb/rez)*rez==numb)
{
return -1;
}
}
}
return num;
}
}
int main()
{
char str[1500],buf[10],dstr[100];
int ind=0;
int kolvo=0;
int i,j,k;
unsigned long n;
CFile f;
CFileException e;
char path[300];
printf("\r\nInput file path:");
scanf("%s",path);
if(f.Open(path,CFile::modeRead,&e))
{
while(f.Read(buf,1)==1)
{
switch(*buf)
{
case 0x0d:
*(str+ind)=0;
break;
case 0x0a:
for(i=1;havegotfield(str,dstr,i," .,!?-+",1)!=0;i++)
{
n=strtoul(str,0,10);
n=numb=sqrt(n);
l=test_simple(n);
if(!(l==-1 || l==-2))
printf("\r\n-%s-",dstr); \\ вывод но можно и посчитать типа kolvo++;
\\
}
ind=0;
default:
*(str+ind)=*(buf);
ind++;
}
}
f.Close();
}
}
Последний раз редактировалось Retimiled; 28.12.2009 в 19:18..
|
|
|

29.12.2009, 00:16
|
|
Новичок
Регистрация: 09.10.2009
Сообщений: 29
С нами:
8730513
Репутация:
0
|
|
курсяк!!!помогите плиз.вот тема:
На базе МП разработать измеритель мощностей двух инфранизкочастотных сигналов, поступающих синхронно от двух АЦП в виде восьмиразрядных прямых кодов со скоростью 100 отсчетов в секунду, объем выборки 1024 отсчета. С выдачей результата в двоичном коде целой и дробной частей во внешний регистр.
впринципе есть готовая прога,нужно либо к ней комменты написать,либо написать заново.контакт 65000000
в ассемблере нужно всё это
Последний раз редактировалось .devastatiour; 29.12.2009 в 00:18..
|
|
|

29.12.2009, 19:06
|
|
Новичок
Регистрация: 05.03.2009
Сообщений: 17
С нами:
9044412
Репутация:
8
|
|
Помогите плз в excel с помощью visual basic for applications сделать задачу.
Разработать информационную технологию, позволяющую вычислить площадь поверхности и объем шара с заданным радиусом.
Задача легкая, но я не понимаю как работать с visual basic for applications. Если можно киньте ссылку на файл с решенной задачей.
Спасибо.
Все, забейте, я сам сделал. 
Последний раз редактировалось Dieselpro; 29.12.2009 в 20:30..
|
|
|

29.12.2009, 21:43
|
|
Banned
Регистрация: 26.12.2009
Сообщений: 152
С нами:
8618486
Репутация:
0
|
|
Помогите исправить ошибки..Нужно инвертировать матрицу относительно побочной диагонали... Язык c.
Код:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define RND (rand()%100-50)
int vvod_hand(int strok, int stolb,int massiv[50][50])
{int i; int j;char buffer[100];
{for(i=1; i<=strok; i++)
{for(j=1; j<=stolb; j++)
{printf("massiv[%d][%d]= ",i,j);
fgets(buffer,10,stdin);
massiv[i][j]=atoi(buffer);
}}}
}
int vvod_rand(int strok, int stolb,int massiv[50][50])
{int i; int j;
{for(i=1; i<=strok; i++)
for(j=1; j<=stolb; j++)
massiv[i][j]=rand()%50;
}
}
int vivod(int strok, int stolb,int massiv[50][50])
{int i; int j;
{for(i=1; i<=strok; i++)
{
{for(j=1; j<=stolb; j++)
printf("%d ",massiv[i][j]);
}
printf("\n");}
}
}
main(int argc, char*argv[])
{int a, b, i, x, kol_vo, strok, stolb, j, p;
int massiv[50][50];
char buffer[100];
srand (time (NULL));
if (argc<3)
{puts("programma vvivodit massiv");
puts("vvedite ./labor4 kol_vo strok kol_vo stolbcov sposob vvoda <klava/rand>");
}
strok=atoi(argv[1]);
if (strok<1 || strok>50)
{puts("kol-vo strok >1 no <100");
getchar(); exit(0);}
stolb=atoi(argv[2]);
if (stolb<1 || stolb>50)
{puts("kol-vo stolbcov >1 no <100");
getchar(); exit(0);}
if(strcmp(argv[3], "klava")==0)
vvod_hand(strok,stolb,massiv);
else
vvod_rand(strok,stolb,massiv);
printf("\n");
printf("Massiv: \n");
vivod(strok,stolb,massiv);
//invertirovanie
for(i=1;i<=strok/2;i++)
{
for(j=1;j<=stolb/2;j++)
{
if(j<stolb-i-1)//tolko elementy nad pobochnoy diagonalyu
massiv[i][j] = massiv[strok][stolb-j];//i menyaem
}
}
//vyvodim na ekran
printf("Inverted matrix: \n");
for(i=1;i<=strok;i++)
{
for(j=1;j<=stolb;j++)
{
printf("%i ",massiv[i][j]);
}
printf("\n");
}
getchar();
exit(0);
}
|
|
|

29.12.2009, 22:54
|
|
Banned
Регистрация: 24.12.2009
Сообщений: 141
С нами:
8622379
Репутация:
45
|
|
Странный код
int vvod_hand(int strok, int stolb,int massiv[50][50])
массив передается указателем(адресом на массив) .... соответственно не нужно городить а писать как ЕСТЬ
int vvod_hand(int strok, int stolb,int *massiv)
поймите прямую связь между указателем и массивом
внутри функции где я имею право использовать
massiv[i][j] дав входные параметры как указал выше .. обычно тут люди испытывают страх!!!
все это относится ко всем функциям!!!
далее везде не берется во внимание что
ИНДЕКС МАССИВА НАЧИНАЕТСЯ С 0(НУЛЯ)!!!
пример
int A[5]
возможные обращения
A[0] A[1] A[2] A[3] A[4]
обмена как такого НЕТ ВООБЩЕ !!! обмен значениями
2-х переменных осуществляются через 3-ю, исключением являеются целые числа!
вообще дагонали главная & побочная существуют только у квадратных матриц!
... поэтому пусть размер равен n , тогда перестановка...
Код:
void invert(int *massiv,int n)
{
int z;
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
if(i+j<n-2)
{
z=massiv[i][j];
massiv[i][j]=massiv[n-j-1][n-i-1];
massiv[n-j-1][n-i-1]=z;
}
}
Последний раз редактировалось Retimiled; 30.12.2009 в 04:37..
|
|
|

30.12.2009, 17:44
|
|
Новичок
Регистрация: 30.07.2009
Сообщений: 4
С нами:
8832653
Репутация:
0
|
|
"Определить радиус и центр окружности минимального радиуса, проходящей хотя бы через три различные точки заданного множества точек на плоскости."
Что-то нет никаких идей..
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|