Мне в качестве зачетной работы нужно написать свою программу на delphi. Может кто предложит какую программу написать?
Мне в качестве зачетной работы нужно написать свою программу на delphi. Может кто предложит какую программу написать?
Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.
8 мая 2008 в 6:04
Хе, у меня жена для себя все подумывает сделать. )) Как раз занималась в аспирантуре алгоритмами кластеризации и классификации, которые очень хорошо на эту задачу ложатся. )) Дело за малым написать на их основе приличный гуй. )
Если вдруг когда нибудь возьмется – выложим. )
8 мая 2008 в 0:00
Эх, жалко что сдал, у меня была мегаидея!
Идея (вдруг кому пригодится):
Есть такое хобби: вышивание. Да, крестиком Для вышивания крестиком нужен паттерн.
Допустим, у меня есть картинка, которую я хочу вышить. На вход – картинка. Параметры: количество цветов (как вариант я сама задаю цвета исходя из имеющихся в наличии ниток) и размер вышивки. На выход – паттерн, который представляет ту же картинку в подходящем для вышивания виде.
Реализация, если в лоб, элементарная: просто заменить набор пикселей на один "усредненного" цвета.
7 мая 2008 в 20:03
сдал, спасибо за помощь
7 мая 2008 в 15:04
Во что творят……
Тема вроде называеться какую прогу написать, и ясно сказано на delphi
7 мая 2008 в 9:04
2 Михаил
конечно, не работает, но это тебе придется решить самому.
PS в следующий раз создай, пожалуйста, новую тему.
6 мая 2008 в 21:01
В этой группе была тема про разбор формул. Как вариант можно написать такую задачку:
Расчёт определённого интеграла (хоть методом прямоугольников, хоть трапеций). Подинтегральное выражение, границы интегрирования и точность вычисления задаются пользователем.
6 мая 2008 в 20:02
переделал как ты сказал, прога не вылетает, но и не вставляет элемент
Код>>
/*Создать связный список, вывести его на экран.
Вставить элемент с заданным словом между элементами с указанными номерами.
Вывести полученный список на экран.*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <windows.h>
#define MAX 3
#define MAXL 10
typedef struct node
{
char data[MAXL];
struct node *next;
}NODE, *PNODE;
void createlist(PNODE *top);
void printlist(PNODE top);
void vstavka(PNODE top);
void createlist(PNODE *curr)
{
char item[MAXL];
int i;
PNODE ptr;
for (i=0;i<MAX; i++)
{
printf("Word->");
gets(item);
ptr=(PNODE)malloc(sizeof(NODE));
ptr->next=*curr;
strcpy(ptr->data, item);
*curr=ptr;
}
}
void printlist(PNODE top)
{
if(top==NULL)
printf("List is empty!\n");
else
{
while (top)
{
puts(top->data);
top=top->next;
}
}
}
void vstavka(PNODE top)
{
char item[MAXL];
int ind;
PNODE prevEl;
PNODE nowEl=top;
PNODE newEl;
printf("Input index and element-> ");
scanf("%d %s", &ind, &item);
newEl=(PNODE)malloc(sizeof(NODE));
newEl->next=NULL;
strcpy(newEl->data,item);
for(int i=0; i<ind; i++)
{
nowEl=nowEl->next;
if(i==ind)
{
prevEl = nowEl->next; // взять след. эл-т из текущего
nowEl->next=newEl;// текущему присвоить новый
newEl->next = prevEl; // в новом продолжить список
break;
}
}
}
void main (void)
{
char item[MAXL];
PNODE top=NULL;
createlist(&top);
printf("List:\n");
printlist(top);
vstavka(top);
printf("\nNew list:\n");
printlist(top);
}
<<Код
6 мая 2008 в 19:05
насчет for (int i=0; i<ind && nowEl; i++) — вдруг индекс задан неверно? (например, больше, чем элементов в списке) вдруг список где-то зациклен?
вдруг ind < 0 — что тогда?
используй defensive programming, раз уж пользуешься C.
6 мая 2008 в 19:04
2 Никита
напиши калькулятор, который распознает выражения в обратной польской записи, ну или даже в обычной записи (инфиксная вроде).
то есть: есть поле ввода, пишешь туда выражение, потом жмыкаешь кнопку "вычислить" — в отдельном окошке показывается результат.
потом можно будет расширить: например, позволить задавать константы.
задача не сильно сложная, но очень интересная (по сути, интерпретатор пишешь)
2 Михаил
ужасная программа, за такое надо бить по почкам
>ptr=PNODE(malloc(sizeof(NODE)));
должно быть ptr=(PNODE)malloc(sizeof(NODE)); (то есть приведение типов. то, что у тебя — конструктор из Си++)
>strcpy(ptr->data, item);
возможно переполнение -> порча памяти -> SEGFAULT, AV, etc.
>scanf("%d %s", ind, item);
нужно передавать указатели на переменные:
scanf("%d %s", &ind, &item);
>newEl=PNODE(malloc(sizeof(NODE)));
опять двадцать пять…
цикл следует переписать:
for(int i=0; i<ind && nowEl; i++) { // если !nowEl, предлагаю longjmp()
nowEl=nowEl->next;
if(i==ind) {
prevEl = nowEl->next; // взять след. эл-т из текущего
nowEl->next = newEl; // текущему присвоить новый
newEl->next = prevEl; // в новом продолжить список
break; // больше ничего не надо, прекращаем цикл
}
}
вообще, если работаешь со списками, используй Лисп — удобнее/понятнее
6 мая 2008 в 18:03
2Михаил Ганеев
у меня компилятор ошибок не находит…но и прогу не запускает…
6 мая 2008 в 18:02
2 Михаил:
В книге Павловской был описан такой алгоритм, сча посмотрю в чем трабл:
6 мая 2008 в 17:03
Михаил, я же сказал на delphi
6 мая 2008 в 17:03
Калькулятор, это уж слишком. А вот с алгеброй неплохая идея
6 мая 2008 в 17:02
слишком примитивно и не ново(
ТОже самое что написать змейку или сапёра(
Напиши-ка програмку для работы с линейной алгеброй – полезно, математично, кучу литературы тебе в помощ найдешь, и работа выйдет не плохая)
6 мая 2008 в 17:02
посмотри пожалуйста вот эту программу, не знаю, почему она вылетает после ввода индекса и слова:
Код>>
/*Создать связный список, вывести его на экран.
Вставить элемент с заданным словом между элементами с указанными номерами.
Вывести полученный список на экран.*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <windows.h>
#define MAX 3
#define MAXL 10
typedef struct node
{
char data[MAXL];
struct node *next;
}NODE, *PNODE;
void createlist(PNODE *top);
void printlist(PNODE top);
void vstavka(PNODE top);
void createlist(PNODE *curr)
{
char item[MAXL];
int i;
PNODE ptr;
for (i=0;i<MAX; i++)
{
printf("Word->");
gets(item);
ptr=PNODE(malloc(sizeof(NODE)));
ptr->next=*curr;
strcpy(ptr->data, item);
*curr=ptr;
}
}
void printlist(PNODE top)
{
if(top==NULL)
printf("List is empty!\n");
else
{
while (top)
{
puts(top->data);
top=top->next;
}
}
}
void vstavka(PNODE top)
{
char item[MAXL];
int ind;
PNODE prevEl;
PNODE nowEl=top;
PNODE newEl;
printf("Input index and element-> ");
scanf("%d %s", ind, item);
newEl=PNODE(malloc(sizeof(NODE)));
newEl->next=NULL;
prevEl->next=newEl;
strcpy(newEl->data,item);
for(int i=0; i<ind; i++)
{
nowEl=nowEl->next;
if(i==ind)
{
prevEl = nowEl->next; // взять след. эл-т из текущего
nowEl->next=newEl;// текущему присвоить новый
newEl->next = prevEl; // в новом продолжить список
}
}
}
void main (void)
{
char item[MAXL];
PNODE top=NULL;
createlist(&top);
printf("List:\n");
printlist(top);
vstavka(top);
printf("\nNew list:\n");
printlist(top);
}
<<Код
6 мая 2008 в 16:05
калькулятор напиши…
6 мая 2008 в 16:04
Объем не ограничен, у меня базовые знания delphi,только начинаю изучать
6 мая 2008 в 16:03
Какого уровня и объёма должна быть программа?
6 мая 2008 в 16:03
Какая у тебя область интересов в программировании или около того?