nixp.ru v3.0

24 января 2017,
вторник,
08:02:10 MSK

DevOps с компанией «Флант»
lana написала 22 апреля 2008 года в 15:12 (610 просмотров) Ведет себя как женщина; открыла 3 темы в форуме, оставила 2 комментария на сайте.

Помогите пожалуйста написать прогу на С #

В заданной строке подсчитать частоту появления букв «а» и «b».

// Тему переместил(а) Dmitry Shurupov из форума «Общий по программированию».

Code Monkey

сколько ты за нее готова выложить?

myst

Ну или сделать…

lana

хм… А сколько надо?! :)

myst

Перенесите тему в соотв. раздел. Это раз.

Лично мне нисколько не надо. Фотку запости, а там будем решать. :D

Anarchist
myst
Фотку запости, а там будем решать. :D

Ты бы это самое, жанр что ли сразу указывал… ;)

Code Monkey

прога строк в 10 максимум, можно и подумать как написать

kermit

даже я знаю)

metal

#include

#include

#include

int main(int argc, char* argv[])

{

std::string input;

unsigned int count_a, count_b;

std::cin >> input;

count_a = std::count(input.begin(), input.end(), 'a’);

count_b = std::count(input.begin(), input.end(), 'b’);

std::cout << «Count of 'a' is » << count_a

<< ». Count of 'b' is » << count_b << «.»

<< std::endl;

return 0;

}

Вариант с использованием stl, думаю от C# не сильно будет отличаться.

Code Monkey

Будет :)

я бы написал извращенней :)

lana
myst
Фотку запости, а там будем решать. :D

Ну, вот опять , а при чем здесь моя фотка?!

myst

Ну если мы работаем не за деньги, то надо знать, собственно, кому помогаешь «за так».

Wild_cat

Люди добрые помогите написать прогу для объдинения двух текстовых файлов, где названия файлов вводится с клавиатуры. На C…

Anarchist
Wild_cat
Люди добрые помогите написать прогу для объдинения двух текстовых файлов, где названия файлов вводится с клавиатуры. На C…

Продолжение банкета?

Фотка хде?!

Wild_cat

Скоро будет…

Wild_cat

а как ее можно выложить и куда?

myst

закидываешь на imageshack.us и кидаешь сюда линк

Wild_cat

Так пойдет?

myst

Не супер-качество, ну да бог с тобой.

Wild_cat

Ну а я то тут при чем, если тут тока 100*100 мона

Luche

А мне помогать не надо, но я просто могу фотку выложить =)))))

Дмитрий Шурупов
Luche
А мне помогать не надо, но я просто могу фотку выложить =)))))

Так это… В студию! Как можно понять, люди тут заинтересуются :-D

Luche
Dmitry Shurupov
Так это… В студию! Как можно понять, люди тут заинтересуются :-D

А сколько ты готов за это выложить? =))

Дмитрий Шурупов
Luche
А сколько ты готов за это выложить? =))

Зависит от ракурса и содержимого!

Ой, я не… Я пас. Так, для других… :-D

Luche
Dmitry Shurupov
Зависит от ракурса и содержимого!

Ой, я не… Я пас. Так, для других… :-D

Хе-хе, всегда вы так: чуть что, сразу стрелки на других :D

Wild_cat

Ну помогите мне кто-нибудь! Неужели это так тяжело…

Anarchist
Wild_cat
Так пойдет?

Незачёт. Тема сисек на раскрыта!

Wild_cat

Ну и ладно…. Сама напишу! :-P

kermit

Этого они и добивались ;)

Wild_cat

Тогда зачем было вообще отвечать?

Luche
Wild_cat
Тогда зачем было вообще отвечать?

Лентяи и наглецы =)

Code Monkey

для того, чтобы заставить тебя думать и написать самой :) знаете ли развивает воображение :)

Luche
Code Monkey
для того, чтобы заставить тебя думать и написать самой :) знаете ли развивает воображение :)

А в написании прог часто воображение помогает? :))

Code Monkey

ты не поверишь :)

без воображения в написании прог делать ИМХО просто нечего.

Luche

Не, у меня в школе был опыт написания прог в Бэйсике, но как-то воображение мне не особо помогало =)))

Code Monkey
в школе был опыт написания прог в Бэйсике

да, там не нужно думать, нужно тупо выполнять указания учителя. это быдлокодинг.

гораздо веселее, когда тебе говорят например «сыграть на pc-speaker’e 5-и секундный отрывок любимого муз. произведения» на Q-бейсике например.

вот тут уже потребуется некоторое количество воображения и может даже музыкальных знаний.

splinter

Люди добрые, сходите за меня завтра на работу. Фотка прилагаеться :-D

metal
splinter
Люди добрые, сходите за меня завтра на работу. Фотка прилагаеться :-D

Ты далекова-то живешь:) и кто же за меня на работу пойдет? :D

Wild_cat

Давайте я за вас за всех на работу схожу! А вы мне поможете…

myst

Wild_cat, splinter работает шлюхой, ты ещё согласна?

splinter
Wild_cat, splinter работает шлюхой, ты ещё согласна?


системное администрирование перешло в разряд проституции??? о_О

Wild_cat

Я не согласна! Да и тем более он ею не сможет работать…

myst

Ну это вопрос терминологии…

Wild_cat

Спасибо myst за помощь!!!

metal
Wild_cat
Спасибо myst за помощь!!!

Нельзя помочь тому, кто сам ничего не делает.

Curu3MyHg
splinter
системное администрирование перешло в разряд проституции??? о_О

А что, тот же обслуживающий персонал. ;)

Ну и.. вот, например:

http://humour.sysadminday.com.ru/read.phtml?n=54

Luche

Да всех нас имеют, не льстите себе =))

*сорри за мой французский, но се ля ви :)*

splinter
Да всех нас имеют, не льстите себе =))


просто иногда бывает что имеют нетрадиционным способом :)

Luche
splinter
просто иногда бывает что имеют нетрадиционным способом :)

Это уж на что фантазии хватит ) начальство редко когда ей обделено =)

Wild_cat

Начала писать прогу с циклическим алгоритмом которая считает x+pow(x,3)/facatarial(3)+pow(x,5)/facatarial(5)+pow(x,7)/facatarial(7)+pow(x,9)/facatarial(9)

Вот она, но она не работает помогите пожалуйста!!!

#include

#include

int facatarial (int i)

{

int sum=1;

for(i=1; i<=9; i++)

sum=sum*i;

return sum;

}

void main (){

int x, n, y;

printf(«Enter x=> »);

scanf («%d»,&x);

y=0;

for (n=1; n<=9; n=n+2) y=y+(pow(x,n)/facatarial(n));

printf(«y=%d»,y);

}

Heavy

«facatarial» — улыбнуло :) А, интерeсно, что он должен считать? Неужели факториал числа? Тогда кусок

for(i=1; i<=9; i++)

sum=sum*i;

должен быть (в твоих обозначениях)

int j;

for(j=1; j<=i; j++)

sum=sum*j;

Code Monkey

1 — факториалы рекомендую считать рекурсивно, но аккуратно.

2.

for (n=1; n<=9; n=n+2) y=y+(pow(x,n)/facatarial(n));

понимаю, что можно, вот только нужно ли…

Wild_cat

А как же…

И вообще кто нибудь может подсказать как сделать что бы знаки чередовались, т.е. что бы было x-pow(x,3)/facatarial(3)+pow(x,5)/facatarial(5)-pow(x,7)/facatarial(7)+p ow(x,9)/facatarial(9)

metal
Wild_cat
А как же…

И вообще кто нибудь может подсказать как сделать что бы знаки чередовались, т.е. что бы было x-pow(x,3)/facatarial(3)+pow(x,5)/facatarial(5)-pow(x,7)/facatarial(7)+p ow(x,9)/facatarial(9)

int k=1;

k=-k;

y=y+k*some_expr;

….

Wild_cat

Please, напишите программу полностью!

Wild_cat

Если не тяжело, а то я уже вся запуталась…

metal
Wild_cat
void main (){

     int x, n, y,k;

     printf(«Enter x=> »);

     scanf («%d»,&x);

     y=0;k=1;

     for (n=1; n<=9; n=n+2)

{

y=y+k*(pow(x,n)/facatarial(n));

k=-k;

}

     printf(«y=%d»,y);

}

Wild_cat

Такая вот получается программа, тока она считает неправильно…

#include

#include

int facatarial (int j)

{

int sum=1;

for(j=1; j<=1; j++)

sum=sum*j;

return sum;

}

void main (){

int x, n, y,k;

printf(«Enter x=> »);

scanf («%d»,&x);

y=0;k=1;

for (n=1; n<=9; n=n+2)

{

y=y+k*(pow(x,n)/facatarial(n));

k=-k;

}

printf(«y=%d»,y);

}

Что то тут не так… Помогите мне

metal
Wild_cat
int facatarial (int j)


for(j=1; j<=1; j++)

А ты подумай что она тут тебе насчитает и перечитай что пост Heavy

Code Monkey

чередование знаков делается умножением на -1

Heavy

Задача почему-то напоминает частичную сумму ряда Тэйлора для sin(x)…

Wild_cat

Вообще ни чего не поняла

int j;

for(j=1; j<=i; j++)

sum=sum*j;

это нужно добавить или этим заменить? Тогда причем тут j<=i?

Wild_cat

Пожалуйста напишите мне эту часть с факатариалом!…

Code Monkey

а подумать? нарисовать блок-схемку, не смотря в свой код?

рекомендую сначала проговорить словами то, что ты хочешь от программы.

З.Ы. или в помощь за деньги. сделаю за 300 WMR. и то, Лонгобард жалуется, что мало прошу :)

З.Ы.Ы. слово «факториал» пишется как «фактОриал»

Wild_cat

#include

#include

int factorial (int n)

{

int sum=1;

int j;

for(j=1;j<=n;j=j+1) sum=sum*j;

return sum;

}

void main (){

int x, n, y, k;

printf(«Enter x=> »);

scanf («%d»,&x);

y=0;k=1;

for (n=1; n<=9; n=n+2)

{

y=y+k*(pow(x,n)/factorial(n));

k=-k;

}

printf(«y=%d»,y);

}

а так?

Code Monkey

похоже на правду

Wild_cat

Ну а что еще? Ну подскажите

metal
Wild_cat
Ну а что еще? Ну подскажите

Думаю проблема в том что ты используешь целые числа. int — это знаковый целый тип, прочитай про float и double.

Wild_cat

Как я поняла нужно в факториале оставить целые числа, а уже в теле самой программы использовать все действительные?

Code Monkey

попробуй поменять в main() тип переменной y на double

Wild_cat

Спасибо всем за помощь! Все работает! Уряяя!

Code Monkey

сэкономила 300 рублей :) можно попить пива :)

Wild_cat

Начала писать еще одну программу: упрвление матрицами добавление и удаление строк. Матрица хранится в файле.

Вот тока начало с добавлением:

#include

void main(){

FILE*fd;

fd=fopen(«File.txt»,«a»);

if(fd==NULL)

{printf(«\n Oshibka sozdaniya fayla»);

return;

}

char str[10];

gets(str);

fputs(str,fd);

return;

}

Кто-нибудь помогите пожалуйста, сделайте что бы она с указанного места строку вставляла и удаление. Я все книги перерыла в нашей библиотеке и ничего так по этому не нашла, а мне ох как срочно надо…

Wild_cat

Если кто нибудь поможет, то пришлите программу на ящик: katrin.ras@mail.ru, заранее благодарна!!!

Code Monkey
char str[10];

gets(str);

fputs(str,fd);

потенциальное переполнение буфера.

далее, кто закрывать дескриптор будет? кто будет делать flush в фаил.

З.Ы. рандомными числами файлик забивать не труЪ?

Wild_cat

Пожалуйста напиши программу, очень срочно надо! Скоро сессия, а то до экзамена не допустят, одна осталась, последняя…

Code Monkey

коммерческое предложение смотри выше по топику.

Мне такие лабы писать уже неинтересно.

Скоро сессия, а то до экзамена не допустят

а вот это повод напрячься, подумать, написать и сдать. на экзамене же легче будет. + если специальность завязана на программирование, то без этой базы дальше делать нечего.

З.Ы. да, я сам много чего не делал, не сдавал, или сдавал чужое. Я не верю, что у тебя в группе нет ни одного парня, который умеет делать такие лабы за пиво.

mylon
Wild_cat
Пожалуйста напиши программу, очень срочно надо! Скоро сессия, а то до экзамена не допустят, одна осталась, последняя…

Вот потом получаются, что такие быдлокодеры пишут всякие быдлоприложения, а народ(не искушенный) потом страдает.

Wild_cat

Короче я вообще ни в каких книгах не могу найти удаление символов!!!

Wild_cat

И времени совсем не остается!

Wild_cat

Ну люди, пожалуйста помогите, очень срочно нужно!

metal

Я тебе подскажу примерно.

Во-первых, ты открываешь файл в режими `a`(append), что подразумевает добавление данных в конец файла. Для твоей задачи это не подходит, тебе нужен режим 'r+’.

Как таковое удаление строчки сделать нельзя, тебе надо ее просто переписать.

Для этого считываешь данные из следующей строки, перемещаешься в предыдущую и там записываешь. Для изменения позиции в файле, используется fseek, также полезной функцией может быть ftell.

Wild_cat

Ну вот функцию ftell я вообще в учебнике не нашла, а вот что дальше?

#include

#define BUF_SIZE (10 * 1024)

void main(){

FILE*fd;

fd=fopen(«File.txt»,«r+»);

if(fd==NULL)

{printf(«\n Oshibka sozdaniya fayla»);

return;

}

int n;

scanf(«%lf»,n);

int fseek(FILE*fd,long n,int origin);

char str[10];

gets(str);

fputs(str,fd);

return;

}

metal
Wild_cat
Ну вот функцию ftell я вообще в учебнике не нашла, а вот что дальше?

В man надо смотреть:) В кратце:

long ftell(FILE *stream); — возвращается текущую позицию в файле.

#define BUF_SIZE (10 * 1024)

Что означает этот define?

void main(){

main должен возвращать int, то что у тебя компилятор кушает void, скудоумие разработчиков отдельной ОС.

FILE*fd;

     fd=fopen(«File.txt»,«r+»);

     if(fd==NULL)

     {printf(«\n Oshibka sozdaniya fayla»);

     return;

     }

Открыла файл, текущая позиция в файле 0.

int n;

     scanf(«%lf»,n);

У тебя переменная int, читай про модификаторы формата scanf.

Что ты здесь хочешь получить?

int fseek(FILE*fd,long n,int origin);

Прототип функции это хорошо, но тебе надо ее использовать, а не переписывать начало файла.

char str[10];

     gets(str);

Уже писали, повторюсь что будет если я введу строку длиной больше 10 символов?

fputs(str,fd);

Переписала начало файла на введенную строку, но у тебя немного другое задание.

Где закрытие файла? Он конечно и сам закроется, но явное закрытие файла хороший стиль.

Wild_cat

Ну как ее использовать? Во всей литературе пишут только прототипы. а как и использовать додумывайте сами, и препод не объяснит, потому что его попросту нет, так как заочница… и как тут быть?

Wild_cat

Как указать позицию? Ведь там в байтах указывается и как же с ними разобраться?

metal

У тебя есть интернет, а в нем можно найти кучу исходных кодов, вот тебе и пример использования.

Все правильно, позиция в байтах.

Допустим у тебя есть файл, содержащий: «1234567890».

char a ='A';
fd=fopen("File.txt","r+");
long pos = ftell(fd\);//pos должен быть 0.
fseek(fd,5,  SEEK_SET);
pos = ftell(fd);//pos должен быть 5, фактически указывает на '6'
fwrite(&a,1,1,fd);//переписываешь 6 на 'A'
fseek(fd,-5,  SEEK_CUR);//возвращаешься на начало файла
fgets(string, 10, fd);//считаем строку, не длиннее 10 символов
puts(string);//"12345A7890"
Wild_cat

То что ты написал можно просто вставить в программу? Как я поняла для того чтобы заменить стороку нужно циклический алгоритм создать? Что бы до определенного символа заменять…?????????

Wild_cat

Вот что получается, это я в матрице 3*3 2 строку заменяю… Но как сделать что-бы эти a, b, c с клавиатуры вводились… Я делаю как обычно, а программа выдает ошибку…

#include

void main(){

char a =’A';

char b =’B';

char c =’C';

FILE*fd;

fd=fopen(«File.txt»,«r+»);

long pos = ftell(fd);

fseek(fd,5, SEEK_SET);

pos = ftell(fd);

fwrite(&a,1,1,fd);

fseek(fd,-5, SEEK_CUR);

fseek(fd,6, SEEK_SET);

pos = ftell(fd);

fwrite(&b,1,1,fd);

fseek(fd,-6, SEEK_CUR);

fseek(fd,7, SEEK_SET);

pos = ftell(fd);

fwrite(&c,1,1,fd);

fseek(fd,-7, SEEK_CUR);

char string[10];

fgets(string, 10, fd);

puts(string);

}

Куда сдесь нужно вставить scanf(«…..»); ?

metal
Wild_cat
Вот что получается, это я в матрице 3*3 2 строку заменяю… Но как сделать что-бы эти a, b, c с клавиатуры вводились… Я делаю как обычно, а программа выдает ошибку…

Я написал пример, а не точное решение здачи, если немного подумать то его можно адаптировтаь под твое задание.

#include

void main(){

По поводу возвращаемого значения функцией main я уже писал.

[/quote]

char a =’A';

char b =’B';

char c =’C';

FILE*fd;

fd=fopen(«File.txt»,«r+»);

long pos = ftell(fd);

[/quote]

Зачем здесь ftell? ftell используется для определения позиции, если ты ее не знаешь, а тебе ее надо знать.

fseek(fd,5, SEEK_SET);

pos = ftell(fd);

fwrite(&a,1,1,fd);

Переместиласть к 6-му символу и переписала его.

fseek(fd,-5, SEEK_CUR);

Зачем эта строчка?

fseek(fd,6, SEEK_SET);

pos = ftell(fd);

fwrite(&b,1,1,fd);

Переместиласть к 7-му символу и переписала его. Перемещение абстолютно было бы не нужно если бы не непонятный предыдущий fseek.

fseek(fd,-6, SEEK_CUR);

Опять зачем-то перемещение назад.

fseek(fd,7, SEEK_SET);

pos = ftell(fd);

fwrite(&c,1,1,fd);

Перезапись 8-го символа.

fseek(fd,-7, SEEK_CUR);

char string[10];

fgets(string, 10, fd);

puts(string);

}

Здесь ты увидишь содержание файла, начиная со 2-го символа.

Куда сдесь нужно вставить scanf(«…..»); ?

Да это правильный вопрос, еще что он должен сканировать?

Прочитай свое задание и попробуй нарисовать то, что тебе надо сделать. Напиши потом словами что должно происходить в программе, попытки сделать copy/paste не приведут к успеху.

Wild_cat

Мне нужно что бы он читал введеные с клавиатуры числа, т.е. заменять A, B, C в файле на числа, но как это сделать. Я пыталась вводить в начале файла и после ни чего не получается!

Wild_cat

#include

main(){

char a =’A';

char b =’B';

char c =’C';

double A, B, C;

scanf(«%lf%lf%lf»,&A,&B,&C);

FILE*fd;

fd=fopen(«File.txt»,«r+»);

fseek(fd,5, SEEK_SET);

fwrite(&a,1,1,fd);

fseek(fd,6, SEEK_SET);

fwrite(&b,1,1,fd);

fseek(fd,7, SEEK_SET);

fwrite(&c,1,1,fd);

fseek(fd,-7, SEEK_CUR);

fclose(fd);

}

Вот что получилось при исправлении, ошибок 0, только вот прога все равно ошибку пишет когда вводишь числа

metal
Wild_cat
#include

main(){

Опять вернемчя к main. Правильный прототип main:

int main(int argc, char* argv[])

char a =’A';

char b =’B';

char c =’C';

double A, B, C;

scanf(«%lf%lf%lf»,&A,&B,&C);

FILE*fd;

fd=fopen(«File.txt»,«r+»);

Здесь нет ничего не правильного, ошибки ты скорее всего получаешь из-за того что не правильно данные вводишь.

fseek(fd,5, SEEK_SET);

fwrite(&a,1,1,fd);

fseek(fd,6, SEEK_SET);

fwrite(&b,1,1,fd);

fseek(fd,7, SEEK_SET);

fwrite(&c,1,1,fd);

fseek(fd,-7, SEEK_CUR);

fclose(fd);

}

А здесь все довольно странно, не вижу как этот фрагмент связан с твоим заданием. fseek — низкоуровневая функция, она работает с байтами, как и fwrite. Вот такой вызов fwrite(&c,1,1,fd); Записать 1 раз 1 байт данные находящиеся по адресу переменной c. Для переменной c это верно, поскольку она занимает одина байт.

Очень неудачные названия переменных A и a … сама в этом запутаешься.

Вернись еще раз к своему заданию, ты там строки матрицы должна вводить. Можно это сделать отдельными числами, но вряд ли тебе это нужно. Есть ли у тебя понимания чем отличается бинарный файл от текстового? Записывая float через fwrite, ты получаешь его бинарное отображение в файле.

Wild_cat

Блин ну подскажи как будет правильно, у меня уже в понедельник экзамен!

Wild_cat

Как правильно данные вводить? И сколько весят числа? А main я записываю так как указано в пособии, которое писали наши преподы

metal

main это минус преподам.

#include
int main()
{
      double A, B, C;
      scanf("%lf%lf%lf",&A,&B,&C);
      printf("%lf,%lf,%lf\n",A,B,C);
return 0;
}

bash-3.2$ ./main.e

2.3 54.3 4

2.300000,54.300000,4.000000

Разделитель целой и дробной части может быть и другой.

Wild_cat

Не поняла… Пож, исправь мою программу!

metal
Wild_cat
Не поняла… Пож, исправь мою программу!

Это пример считывания scanf и как вводить данные для нее. Я уже писал, что надо делать чтобы выполнить это задание, ты на это забила.

ecobeingecobeing.ru
Экология и вегетарианство на благо всем живым существам Планеты.