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

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

19.11.2017, 22:00. Показов 568. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Антипаттерны микросервисной архитектуры
ArchitectMsa 03.04.2025
Хорошо спроектированная микросервисная система может выдержать испытание временем, оставаясь гибкой, масштабируемой и устойчивой к большинству проблем. Такая архитектура обладает высоким уровнем. . .
std::mutex в C++: Советы и примеры использования
bytestream 03.04.2025
std::mutex - это механизм взаимного исключения, который гарантирует, что критический участок кода выполняется только одним потоком в каждый момент времени. Это простое, но могущественное средство. . .
Не удержался от оценки концепции двигателя Стирлинга.
Hrethgir 03.04.2025
Сколько не пытался - она выдавала правильные схемы, причём случайно рисовала горячие области в середине, холодные по краям, трубки с краёв в низ и магнит в соединяющей, но при этой выдавала описание. . .
Метод с двумя буферами (или double buffering) или ping-pong buffering
Hrethgir 02.04.2025
Из ответов LM модели. Метод, который предполагает использование двух массивов для хранения промежуточных результатов сложения векторов, обычно применяется в сценариях, где необходимо минимизировать. . .
На любовном киберфронте
Alexander-7 01.04.2025
Недавно на одном малоизвестном сайте знакомств мною заинтересовалась девушка: «Текст немного странный. Но, судя по адресу почты, иностранка», – подумал я. Поколебавшись пару суток, я ответил ей:. . .
Как работает Node.js изнутри
run.dev 29.03.2025
Node. js изменил подход к разработке веб-приложений, позволив использовать JavaScript не только на стороне клиента, но и на сервере. Созданный в 2009 году Райаном Далем, этот открытый,. . .
Моки в Python: Mock Object Library
py-thonny 29.03.2025
Тестирование кода требует особого подхода, когда речь идёт о компонентах, взаимодействующих с внешним миром. Мы часто сталкиваемся с непредсказуемостью HTTP-запросов, чтением данных из базы или. . .
JavaScript: Управление памятью и улучшение производительности
run.dev 29.03.2025
В отличие от низкоуровневых языков программирования, JavaScript не требует ручного выделения и освобождения памяти. Здесь работает автоматический сборщик мусора, который определяет, какие объекты. . .
Мультитенантная архитектура со SpringBoot и PostgreSQL
ArchitectMsa 29.03.2025
SaaS-приложения редко обслуживают одного клиента и обычно они должны поддерживать множество организаций, каждая из которых работает в своём изолированном пространстве. Мультитенантная архитектура. . .
std::span в C++: Производительность и лучшие практики
NullReferenced 28.03.2025
std::span — одно из самых недооценённых нововведений стандарта C++20, которое радикально меняет подход к работе с непрерывными последовательностями данных. По сути, это невладеющее представление. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
Выделить код Копировать код Сохранить код Нормальный размер Увеличенный размер