ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.

09.06.2009, 13:46
|
|
Познающий
Регистрация: 08.07.2008
Сообщений: 63
Провел на форуме: 180959
Репутация:
14
|
|
Сообщение от Fata1ex
А вот этого уже полно в гугле, да и msdn никто не отменял (с).
PS Набираешь название функций в гугле и тебе выдается довольно много примеров использования.
да гуглил я эти обрывки программ. сообщи всем знакомым программистам, чтобы к примерам кодов писали комментарии.
|
|
|

09.06.2009, 13:50
|
|
Постоянный
Регистрация: 12.12.2006
Сообщений: 906
Провел на форуме: 4205500
Репутация:
930
|
|
Последний раз редактировалось Fata1ex; 09.06.2009 в 13:54..
|
|
|

09.06.2009, 17:11
|
|
Новичок
Регистрация: 08.11.2008
Сообщений: 9
Провел на форуме: 28743
Репутация:
-5
|
|
Сделайте пожалуйста за вознаграждение 4 лабораторные работы (язык Си, не С++ !!!)
1. Дан массив структур. Структура содержит элементы: имя, пол, рост, группа. Написать программу, которая вводит информацию о каждом студенте. Определить, есть ли в группе хотя бы 2 человека одного роста.
2. Дан текстовый файл. Выяснить, есть ли в строках слова, оканчивающиеся на 'f', и сколько таких слов. В результирующий файл записать количество таких слов и номера строк.
3. В текстовом файл заменить все последовательности идущих подряд пробелов одним пробелом. Новый файл не создавать
4. Дан текстовый файл. Если в командной строке
* не заданы параметры - распечатать все строки, а если
* задана опция -n, распечатать последние N строк
К ним нужно сделать отчеты (примеры выполненных работ и отчеты к ним есть во вложенном архиве)
Связаться со мной:
- id3650997 вКонтакте
velvetdust - собака - яндекс.ру
veletdust2008 - собака - gmail.com
Оплата договорная. Заранее спасибо!
архив - http://dump.ru/file/2872076
P.S. Преподаватель очень строгий, прошу сделать код попроще, не применяя что-то выходящее за рамки первого курса (в архиве есть примеры решений)
Последний раз редактировалось velvetdust; 09.06.2009 в 17:21..
|
|
|

10.06.2009, 14:05
|
|
Участник форума
Регистрация: 27.11.2008
Сообщений: 161
Провел на форуме: 298300
Репутация:
128
|
|
Сообщение от velvetdust
Сделайте пожалуйста за вознаграждение 4 лабораторные работы (язык Си, не С++ !!!)
Вообще-то хоть на первом курсе нужно чему-то учиться и делать самому, хотя-бы такие вещи. Ну да ладно, может у тебя есть уважительная причина? ))) Вот набросал все четыре задачи, а отчеты к ним делай сам, во всяком случае, этот код намного лучше того, что лежит в так называемых примерах у тебя.
1)
Код:
#include <stdio.h>
#include <stdlib.h>
enum {NAME_LEN_MAX=100,GROUP_NAME_MAX=20};
typedef struct {
char name[NAME_LEN_MAX];
char group[GROUP_NAME_MAX];
int sex;
int height;
} student;
void fill_student(student * stud);
int main(int argc, char ** argv){
int stud_count = 0;
(void)printf("Enter the count of students: ");
(void)scanf("%d",&stud_count);
student * students = malloc(stud_count * sizeof(student));
for(int i=0; i < stud_count; i++)
fill_student(&students[i]);
for(int i=0; i < stud_count - 1; i++)
for(int j=i+1; j < stud_count; j++)
if(students[i].height == students[j].height)
(void)printf("They have equivalent height(%d) %s and %s\n",
students[i].height,students[i].name,students[j].name);
exit(EXIT_SUCCESS);
}
void fill_student(student * stud) {
printf("Enter the name: ");
scanf("%s",stud->name);
printf("Enter the group: ");
scanf("%s",stud->group);
printf("Enter the sex [0 or 1]: ");
scanf("%d",&stud->sex);
printf("Enter the height: ");
scanf("%d",&stud->height);
}
2)
Код:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
enum{STRING_LEN_MAX=250};
int main(int arg,char ** argv) {
FILE * fd = fopen("infile.txt","r");
FILE * out_file = fopen("outfile.txt","w");
char buf[STRING_LEN_MAX];
int i=1;
int all_count=0;
(void)fgets(buf,STRING_LEN_MAX,fd);
while(!feof(fd)){
int cur_string_count=0;
for(int j=0; j<strlen(buf)-1;j++)
if(buf[j]=='f'&&(buf[j+1]==' '||buf[j+1]==','||buf[j+1]=='.'))
++cur_string_count;
if(buf[strlen(buf)-2]=='f')
++cur_string_count;
if(cur_string_count>0)
(void)fprintf(out_file,"String number %d have %d words\n",i,cur_string_count);
all_count+=cur_string_count;
++i;
(void)fgets(buf,STRING_LEN_MAX,fd);
}
(void)fprintf(out_file,"Total: %d\n",all_count);
fclose(fd);
fclose(out_file);
exit(EXIT_SUCCESS);
}
3)
Код:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
enum{STRING_COUNT_MAX=100,STRING_LEN_MAX=250};
int main(int argc, char ** argv){
FILE * infile = fopen("infile.txt","r");
char * strings[STRING_COUNT_MAX];
char buf[STRING_LEN_MAX];
int string_num = 0;
(void)fgets(buf,STRING_LEN_MAX,infile);
while(!feof(infile)) {
strings[string_num]=calloc(STRING_LEN_MAX,sizeof(char));
for(int i=1,j=0;i<strlen(buf);i++){
if(buf[i]==' ' && buf[i-1]==' ')
continue;
else
strings[string_num][j++]=buf[i];
}
++string_num;
(void)fgets(buf,STRING_LEN_MAX,infile);
}
fclose(infile);
infile = fopen("infile.txt","w");
for(int i=0;i<string_num; i++)
(void)fprintf(infile,"%s\n",strings[i]);
fclose(infile);
exit(EXIT_SUCCESS);
}
4)
Код:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
enum{STRING_COUNT_MAX=100,STRING_LEN_MAX=250};
int main(int argc, char ** argv) {
int last_lines=0, string_num=0;
if(argc == 2)
last_lines = atoi(argv[1]);
FILE * infile = fopen("infile.txt","r");
char buf[STRING_LEN_MAX];
char * strings[STRING_COUNT_MAX];
(void)fgets(buf,STRING_LEN_MAX,infile);
while(!feof(infile)){
strings[string_num] = calloc(STRING_LEN_MAX,sizeof(char));
(void)strcpy(strings[string_num++],buf);
(void)fgets(buf,STRING_LEN_MAX,infile);
}
int string_index = 0;
if(last_lines != 0)
string_index = string_num - last_lines;
if(string_index < 0) string_index = 0;
for(int i = string_index; i < string_num; i++)
(void)printf("%s",strings[i]);
fclose(infile);
exit(EXIT_SUCCESS);
}
Разбирайся, шалопай  Удачной сессии ))))
|
|
|

09.06.2009, 17:21
|
|
Постоянный
Регистрация: 12.12.2006
Сообщений: 906
Провел на форуме: 4205500
Репутация:
930
|
|
Хоть бы кто-то перед тем как задать вопрос просматривал тему...все задания однотипные и код уже много раз выкладывался.
|
|
|

10.06.2009, 01:13
|
|
Познающий
Регистрация: 28.08.2005
Сообщений: 30
Провел на форуме: 181219
Репутация:
9
|
|
люди, помогите плиз с реализацией алгоритма Хаффмана на Си
ЗЫ - поиск по теме ничего не дал, а вручную просматривать 156 страниц както накладно )
|
|
|

10.06.2009, 01:30
|
|
Постоянный
Регистрация: 09.06.2005
Сообщений: 531
Провел на форуме: 3516666
Репутация:
439
|
|
а в гугле поискать?
вот проскроль там вниз.
|
|
|

14.06.2009, 16:21
|
|
Новичок
Регистрация: 08.11.2008
Сообщений: 9
Провел на форуме: 28743
Репутация:
-5
|
|
Сообщение от ZeroHour
люди, помогите плиз с реализацией алгоритма Хаффмана на Си
ЗЫ - поиск по теме ничего не дал, а вручную просматривать 156 страниц както накладно )
http://compression.ru/download/sources/huff/mastrukov_huff.rar
http://ishodniki.ru/list/info.php?cat=6&id=1620&show=cpp_arhiv
|
|
|

10.06.2009, 01:42
|
|
Познающий
Регистрация: 28.08.2005
Сообщений: 30
Провел на форуме: 181219
Репутация:
9
|
|
ага, особенно классные строчки
Код:
char *filein;
scanf("%s",filein);
память выделять у нас нынче не модно..
все найденное в гугле или очень уж запутано, или с такими ошибками, что даже страшно компилить)
если бы нашел чтото толковое - не писал бы сюда 
|
|
|

10.06.2009, 03:23
|
|
Постоянный
Регистрация: 09.06.2005
Сообщений: 531
Провел на форуме: 3516666
Репутация:
439
|
|
да да, не стоит благодарности.
кто сказал, что копипастить надо? это тебе пример реализации, а дальше дерзай! или ты думаешь, что тебе сейчас 200 строк нового кода по алгоритму напишут?
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|