小编pre*_*lic的帖子

Ada的In/Out vs Out

我有一个快速的Ada问题.如果我有一个程序,我可以写出一个变量,或者我可能不管它,它应该是一个Out参数还是一个In Out参数?我想这归结为这个问题:

如果调用者调用带参数的过程,但调用Out程序没有触及参数,则调用者会看到什么.它看到相同的价值吗?未定义的行为?

编译器没有抱怨,因为它看到了对Out变量的赋值......它恰好处于条件中,可能无法到达,并且编译器不会费心去检查所有路径.

我怀疑安全的赌注是将参数标记为In Out,但我想知道这是否有必要或只是风格上更可取.

谢谢!

-prelic

ada

5
推荐指数
1
解决办法
2134
查看次数

外键与部分键及其ER表示

我无法理解部分键/弱实体和外键之间的区别.我觉得自己不能理解这些东西是个白痴.

据我了解:

Weak Entity: An entity that is dependent on another entity.
Partial Key: Specifies a key that that is only partially unique.  Used for weak entities.

vs

Foreign Key: A key that is used to establish and enforce a relation between data in different tables.
Run Code Online (Sandbox Code Playgroud)

这些似乎不是一样的东西,但是我无法区分它们的用途.

以[非常]简单的例子为例:

We have employees specified by an empid.  We also have children specified by name.  A
child is uniquely specified by name when the parent (employee) is known.
Run Code Online (Sandbox Code Playgroud)

子实体是否是一个弱的身份,其中部分密钥是名称(部分唯一)?或者我应该使用外键,因为我正在努力建立和加强员工与孩子之间的关系?我觉得我可以为两者辩护,但我也觉得我在这里缺少一些东西.任何见解都值得赞赏,我为这些愚蠢的问题道歉.

entity-relationship relational-database

4
推荐指数
2
解决办法
3万
查看次数

找到递增然后递减列表的最大值和最小值

我试过用谷歌搜索这个问题,但没有取得多大成功……我确定这个问题或类似问题有一个技术名称,但我似乎找不到答案。

给定一个L严格递增然后严格递减的整数列表,找出该列表的最大值和最小值。

因此,例如,L可能是{1 2 3 4 5 4 3 2}{2 4 5 7 3}

为了找到最小值,我说最小的整数必须是左端点或右端点,所以只需比较端点,然后返回最小的一个,给出恒定时间。

为了找到最大值,我基本上建议使用递归二分搜索来找到L[x]满足L[x] > L[x-1]和的点L[x] > L[x+1],给出摊销的 lg(n) 时间。他似乎并不喜欢这个答案,而且对我来说这似乎很天真,所以我想知道我是否遗漏了什么。

谢谢您的帮助!

编辑:

我在python中的解决方案:

def Max(L):
    n = len(L)-1
    if n == 0:
        return L[0]

    if L[n/2] > L[n/2 - 1] and L[n/2] > L[n/2 + 1]:
        return L[n/2]
    elif L[n/2] < L[n/2 + 1]:
        return Max(L[n/2:])
    else:
        return Max(L[:n/2])  
Run Code Online (Sandbox Code Playgroud)

algorithm

3
推荐指数
1
解决办法
2874
查看次数

使用free()时程序发生奇怪的变化

我有点困惑.

我正在编写一个非常简单的文件系统,它基本上是: -
从一个文件中
读取一个数据块 - 从该块中
获取一个哈希
- 搜索该哈希的链接列表- 如果找不到,请附加
- 如果找到,则不执行任何操作

问题:
当我不使用free时,程序要慢得多(可能是泄漏?).

当我使用free时,程序运行得更快,块大小为128和256,但是当我尝试512(插入时崩溃)时崩溃.我在视觉工作室工作,它只是崩溃了.我得到"VS停止工作......"的消息,没有提供任何见解.

最重要的是,当我使用free而不使用它时,我会得到很多不同的结果.

任何帮助将非常感谢.

好吧,一些代码(缩写):

struct list_el
{
    char* hash;
    struct list_el* next;
    struct list_el* prev;
};  
typedef struct list_el item;

item* head, *tail;

void ins(item* ins) 
{
item* iterator = (item*)malloc(sizeof(item));
if(iterator == NULL)
{
    printf("out of memory\n");
    exit(1);
}
else if(head != NULL)
{
    iterator = head;
    while(iterator != NULL)
    {
        if(strcmp(iterator->hash, ins->hash) == 0)
        {
            //free(iterator); (problem line)
            matches++;
            return;
        }
        else if(iterator->next …
Run Code Online (Sandbox Code Playgroud)

c

1
推荐指数
1
解决办法
112
查看次数

OSX - "NumPy/SciPy需要Python 2.6才能安装"

我刚买了一台新机器(osx-lion),我正在尝试重新安装所有工具.我正在尝试安装NumPy和SciPy.我知道Apple发布的版本并不是让NumPy和SciPy感到满意的原因,所以我去了Python.org并安装了推荐的版本(2.7.3),这很顺利.现在当我which python,它指向新的2.7版本,这是与机器附带的版本不同.我的PATH变量还包含2.7(python.org)版本的路径.

然后我下载了NumPy并收到了消息:

numpy 1.6.1 cannot be installed on this disk. numpy requires python.org Python 2.6 to install.

那么我尝试了SciPy,得到了同样的信息:

scipy 0.10.1 can't be installed on this disk. scipy requires python.org Python 2.6 to install.

经过一些谷歌搜索,我发现所需的2.6只是2.6或更高,我确实安装了Python.org版本(2.7),但我必须遗漏一些东西.

编辑 - 尝试重新启动计算机,以防有些更改需要重新启动才能生效,但这没有用.

任何帮助将不胜感激.谢谢大家.

python macos numpy scipy

1
推荐指数
1
解决办法
7060
查看次数

从 Ada 捕获 C 代码中的内存异常

我有一些与某些 C 函数接口的 ada 代码,但我无法在由 C 代码生成/引发的 ada 代码中捕获内存异常/SIGSEGV 信号。我正在使用运行 C 函数的 ada 任务,但我知道 C 代码中存在问题的唯一方法是,当我尝试安排更多任务时,ada 代码会引发TASKING_ERROR. 这没关系,但无法确切地找出问题的来源,因为问题的唯一迹象是TASKING_ERROR我的 ada 任务调度程序中的“一路向上”。我可能会采用什么策略来查明任务错误的实际原因?

任何帮助或想法将不胜感激。

c ada

0
推荐指数
1
解决办法
683
查看次数