Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 Аватар для Michail97
94 / 41 / 23
Регистрация: 18.09.2016
Сообщений: 379

Проверьте ещё один код

19.11.2017, 22:00. Показов 570. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Напишите к чему можно придраться, пожалуйста.
C Скопировано
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
/*
В данном задании необходимо осуществить обработку
бинарного файла (или файлов) согласно условию варианта.
Имя файла передается в параметрах командной строки, а если
оно там не указано, то вводится с клавиатуры.
При выполнении заданий реализовать программу генерации исходного файла.
Задание №11
Дан файл, содержащий координаты точек в двумерном пространстве (вещественные числа типа double).
Записать все точки из первой координатной четверти в файл 1.bin, второй четверти - 2.bin,
третьей четверти - 3.bin, четвертой четверти - 4.bin.
Внутри каждой из четвертей точки упорядочивать в порядке удаления от центра координат. (30 баллов)
*/
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
#include <time.h>
#include <windows.h>
#include <stdbool.h>
#define COUNT_ 20
#define random( X, Y ) X + ( Y - X )*( double )(rand())/RAND_MAX
typedef struct
{
    double x, y;
}POINT_NEW;
void check_square( POINT_NEW * , char *); // проверка в какой четверти лежит точка
/*--выделение памяти---*/
bool alloc( POINT_NEW **, int); // для 1 четверти
/*---------------------*/
int cmp( const void *, const void * );
double d( double , double );
int main( int argc, char *argv[] )
{
    SetConsoleCP( 1251 );
    SetConsoleOutputCP( 1251 );
    char name[15];
    if( argc == 1 )
    {
        printf( "Введите имя файла: ");
        scanf( "%s", name );
    }
    else
        strcpy( name, argv[1] );
    strcat( name, ".bin" );
 
    FILE *f_read_write = NULL;
        putchar( '\n' );
    srand( time(NULL) );
    POINT_NEW mass[COUNT_];
    for( int i = 0; i < COUNT_; i++ )
    {
        double temp_1  =  random( -rand()%20+1, rand()%15+1 ) ;
        double temp_2  =  random( -rand()%20+1, rand()%15+1 ) ;
        mass[i].x = temp_1;
        mass[i].y = temp_2;
        printf( "%.4lf %.4lf\n", mass[i].x, mass[i].y );
    }
    if( ( f_read_write = fopen( name, "wb+")) == NULL )
    {
        puts( "Не удалось создать файл.\n" );
        return 0;
    }
    fwrite( mass, sizeof( POINT_NEW), COUNT_ , f_read_write );
    fclose( f_read_write );
    if( ( f_read_write = fopen( name, "rb+")) == NULL )
    {
        puts( "Не удалось открыть файл для чтения." );
        return 0;
    }
    POINT_NEW *arr[4] = { NULL };
    int cnt[4] = { 0 };
    for( int i = 0; i < COUNT_; i++ )
    {
        POINT_NEW temp;
        char sol[3];
        fread( &temp, sizeof(POINT_NEW), 1, f_read_write );
        check_square( &temp, sol );
        if( strcmp( sol, "00") == 0)
        {
            alloc( &arr[0], cnt[0] + 1 );
            arr[0][cnt[0]] = temp;
            cnt[0]++;
        }
        else if( strcmp( sol, "01") == 0)
        {
            alloc( &arr[1], cnt[1] + 1 );
            arr[1][cnt[1]] = temp;
            cnt[1]++;
        }
        else if( strcmp( sol, "10") == 0)
        {
            alloc( &arr[2], cnt[2] + 1 );
            arr[2][cnt[2]] = temp;
            cnt[2]++;
        }
        else if( strcmp( sol, "11") == 0)
        {
            alloc( &arr[3], cnt[3] + 1 );
            arr[3][cnt[3]] = temp;
            cnt[3]++;
        }
    }
    fclose( f_read_write );
    for( int i = 0; i < 4; i++ )
        qsort( arr[i], cnt[i], sizeof( POINT_NEW), cmp );
    printf( "Отфильтрованные значения в зависимости от четверти и отсортированные.\n");
    for( int j = 0; j < 4; j++ )
    {
        for( int i = 0; i < cnt[j]; i++ )
            printf( "| %.4lf %.4lf| d = %.4lf\n", arr[j][i].x, arr[j][i].y, d(arr[j][i].x, arr[j][i].y) );
        putchar( '\n' );
    }
    FILE *f[4] = { NULL };
    for( int i = 0; i < 4; i++ )
    {
        char buff[6];
        buff[0] = ( i + 1 ) + 48;
        buff[1] = 0;
        strcat( buff, ".bin" );
        if( ( f[i] = fopen(  buff, "wb+")) == NULL )
        {
            puts( "Не удалось создать файл.");
            return 0;
        }
        fwrite( arr[i], sizeof(POINT_NEW), cnt[i], f[i] );
        fclose( f[i] );
    }
    for( int i = 0; i < 4; i++ )
        free( arr[i] );
    system( "pause" );
    return 0;
 
}
bool alloc( POINT_NEW **mass, int count )
{
    POINT_NEW *temp = ( POINT_NEW *)realloc( *mass, sizeof(POINT_NEW)*count );
    if( temp == NULL ) return 1;
    *mass = temp;
    return 0;
}
void check_square( POINT_NEW *al , char *str_pt_x_y)
{
    POINT_NEW ar[][2] = { { { 1.0, 1.0}, { -1.0, 1.0}}, { { -1.0, -1.0 }, { 1.0, -1.0 }}};
    char pos_x, pos_y; // четверть
    bool flag = false;
    for( int i = 0; i < 2; i++ )
    {
 
        for( int j = 0; j < 2; j++)
        if( ( al->x * ar[i][j].x ) > 0 && ( al->y * ar[i][j].y > 0 ))
        {
                pos_x = i + 48;
                pos_y = j + 48;
                flag = true;
                break;
        }
        if( flag ) break;
    }
    str_pt_x_y[0] = pos_x;
    str_pt_x_y[1] = pos_y;
    str_pt_x_y[2] = 0;
}
 double d( double x, double y )
{
    return sqrt( pow( x, 2.0) + pow( y, 2.0) );
}
int cmp( const void *arg_1, const void *arg_2 )
    {
        POINT_NEW *a = ( POINT_NEW * )arg_1;
        POINT_NEW *b = ( POINT_NEW * )arg_2;
        double d_1 = d( a->x, a->y );
        double d_2 = d( b->x, b->y );
        if( d_1 > d_2 )
            return 1;
        else if( d_1 < d_2)
            return -1;
        else
            return 0;
    }
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.11.2017, 22:00
Ответы с готовыми решениями:

проверьте пожалуйста еще один код программы, кто может
проверьте пожалуйста еще один код программы(кто может вот условие: программа должна проверить число является ли оно простым или нет? ...

Проблема в объединении файлов о один проект. Скорее всего нужен ещё какой-то код (так называемый Main)
Нужна помощь в объединении файлов о один проект. Скорее всего нужен ещё какой-то код (так называемый Main) для реализации идеи. Суть:...

Можно ли установить ХР, Дебиан, Убунту и еще один линукс на один диск ?
Сейчас у меня на диске ХР, Дебиан и Убунту, хотела поставить Минт, но не получилось создать раздел, в месажбоксе говорится что нельзя...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.11.2017, 22:00
Помогаю со студенческими работами здесь

ComboBox: сделать чтобы один из элементов списка выдавал еще один список
Всем привет, я начинаю изучать делфи, и вот появился вопрос на который не как не могу найти ответ. У меня есть ComboBox, со списком и я...

Найдите вероятность, что будет вынут один шар, а после еще один
В коробке 3 красных шара, 5 черных и 8 желтых. Найдите вероятность того, что случайно будет вынут желтый шар, а после него - черный (желтый...

Прижать один элемент (блок) к другому + один ещё отодвинуть на задний план или укоротить
Имеется сайт, надо &quot;скачущий&quot; элемент сплеш в жёлтой рамке поместить на задний план или укоротить, чтобы он не налазил на кнопки меню. ...

Сколькими способами можно выбрать 6 шаров, если один из них должен быть синим, а еще один - жёлтым
В урне находятся 3 красных, 5 синих, 2 жёлтых и 4 зеленых шара. Сколькими способами можно выбрать 6 шаров, если один из них должен быть...

Проверьте пожалуйста. (ещё раз на другом процессоре)
Проверьте пожалуйста.Надо было найти количество положительных и отрицательных чисел. pdp11. XOR R1, R1 ; положительные XOR R2, R2...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Создаем Telegram бот на TypeScript с grammY
run.dev 05.04.2025
Одна из его самых сильных сторон Telegram — это интеграция ботов прямо в экосистему приложения. В отличие от многих других платформ, он предоставляет разработчикам мощный API, позволяющий создавать. . .
Паттерны распределённых транзакций в Event-Driven микросервисах
ArchitectMsa 05.04.2025
Современные программные системы всё чаще проектируются как совокупность взаимодействующих микросервисов. И хотя такой подход даёт множество преимуществ — масштабируемость, гибкость, устойчивость к. . .
Работа с объемным DOM в javascript
Htext 04.04.2025
Сегодня прочитал статью тут о расходах памяти в JS, ее утечках и т. п. И вот что вспомнил из своей недавней практики. Может, кому пригодится. Хотя, в той статье об этом тоже есть. Дело в том, что я. . .
Оптимизация производительности Node.js с помощью кластеризации
run.dev 04.04.2025
Масштабирование приложений для обработки тысяч и миллионов запросов — обыденная задача для многих команд. Node. js, благодаря своей асинхронной событийно-ориентированной архитектуре, стал популярной. . .
Управление зависимостями в Python с Poetry
py-thonny 04.04.2025
Стандартный инструмент для установки пакетов в Python - pip - прекрасно справляется с базовыми сценариями: установил пакет командой pip install и используешь его. Но что произойдёт, когда разные. . .
Мониторинг с Prometheus в PHP
Jason-Webb 04.04.2025
Prometheus выделяется среди других систем мониторинга своим подходом к сбору и хранению метрик. В отличие от New Relic, который использует агентный подход и отправляет данные во внешнее хранилище,. . .
Пакет Context в Golang: Управление потоками и ресурсами
golander 04.04.2025
Работа с горутинами в Go часто напоминает управление непослушными детьми - они разбегаются кто куда, делают что хотят и не всегда завершаются вовремя. К счастью, в Go 1. 7 появился пакет context,. . .
Контейнеризация React приложений с Docker
Reangularity 03.04.2025
Контейнеризация позволяет упаковать приложение со всеми его зависимостями в автономный контейнер, который можно запустить на любой платформе с установленным Docker. Это существенно упрощает процессы. . .
Свой попап в SwiftUI
mobDevWorks 03.04.2025
SwiftUI, как декларативный фреймворк от Apple, предоставляет множество инструментов для создания пользовательских интерфейсов. В нашем распоряжении есть такие API как alerts, popovers, action sheets. . .
Антипаттерны микросервисной архитектуры
ArchitectMsa 03.04.2025
Хорошо спроектированная микросервисная система может выдержать испытание временем, оставаясь гибкой, масштабируемой и устойчивой к большинству проблем. Такая архитектура обладает высоким уровнем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
Выделить код Копировать код Сохранить код Нормальный размер Увеличенный размер