ぼるじょあがC/C++の宿題を片づけますYO! 68代目at TECH
ぼるじょあがC/C++の宿題を片づけますYO! 68代目 - 暇つぶし2ch499:homoじょあ ◆5OLf4yFnuM
07/09/02 21:42:41
(・3・) エェー ②ってこんなん?
int main(){
Cell *a, *b, *c, *d, *e, *header, *list;
a = new Cell();b = new Cell();c = new Cell();d = new Cell();e = new Cell();
a->setNext(b);b->setNext(c);c->setNext(d);d->setNext(e);
a->setValue(10);b->setValue(20);c->setValue(30);d->setValue(40);e->setValue(50);
header = a;

c->setNext(c->getNext()->getNext());
list = header;
while(list != NULL){
std::cout << list->getValue() << std::endl;
list = list->getNext();
}
std::cout << std::endl;
header = header->getNext();
list = header;
while(list != NULL){
std::cout << list->getValue() << std::endl;
list = list->getNext();
}
return 0;
}


500:homoじょあ ◆5OLf4yFnuM
07/09/02 21:47:59
(・3・) エェー ③・・なんか意図が違う気がしてきたお
int main(){
Cell *a, *b, *c, *d, *e, *header, *list;
a = new Cell();b = new Cell();c = new Cell();d = new Cell();e = new Cell();
a->setNext(b);b->setNext(c);c->setNext(d);d->setNext(e);
a->setValue(10);b->setValue(20);c->setValue(30);d->setValue(40);e->setValue(50);
header = a;
//②の処理
c->setNext(c->getNext()->getNext());
header = header->getNext();

//③で追加
a->setNext(c->getNext());
c->setNext(a);
list = header;
while(list != NULL){
std::cout << list->getValue() << std::endl;
list = list->getNext();
}
std::cout << std::endl;
d->setNext(header);
header = d;
list = header;
while(list != NULL){
std::cout << list->getValue() << std::endl;
list = list->getNext();
}
return 0;
}


501:homoじょあ ◆5OLf4yFnuM
07/09/02 21:52:53
(・3・) エェー そろそろ書き込みが規制される予感
④のクラスの変更

class Cell{
Cell *next;
Cell *front;
int value;
public:
Cell();
void setNext(Cell*);
void setFront(Cell*);
void setValue(int);
Cell* getNext();
Cell* getFront();
int getValue();
};

Cell::Cell(){next = NULL; front = NULL; value= 0;}
void Cell::setNext(Cell *next){this->next = next;}
void Cell::setFront(Cell *front){this->front = front;}
void Cell::setValue(int value){this->value = value;}
Cell* Cell::getNext(){return next;}
Cell* Cell::getFront(){return front;}
int Cell::getValue(){return value;}


502:homoじょあ ◆5OLf4yFnuM
07/09/02 22:00:00
(・3・) エェー ④
int main(){
Cell *a, *b, *c, *d, *e, *header, *list;
a = new Cell();b = new Cell();c = new Cell();d = new Cell();e = new Cell();
a->setValue(10);b->setValue(20);c->setValue(30);d->setValue(40);e->setValue(50);
Cell *array[] = {NULL, a, b, c, d, e, NULL};
for(int i=1; i<=5; i++){
array[i]->setFront(array[i-1]);
array[i]->setNext(array[i+1]);
}
header = a;
list = header;
while(list->getNext() != NULL)list = list->getNext();
while(list != NULL){
std::cout << list->getValue() << std::endl;
list = list->getFront();
}
return 0;
}


503: ◆uWJL1MSv.M
07/09/03 01:35:15
助かりました。ありがとうございました。

504:デフォルトの名無しさん
07/09/08 20:37:58
この痛いやつのリアルアドレス求む

URLリンク(www.nicovideo.jp)

505:デフォルトの名無しさん
07/09/09 00:25:09
>>504
そんなもんTCP/IPバイブル読み尽くしたらすぐにわかるわ。
そんな努力もせんと、人に聞くな。何するつもりや。

506:homoじょあ ◆5OLf4yFnuM
07/09/09 02:18:05
(・3・) エェー 素晴らしい説明でしたお

507:デフォルトの名無しさん
07/09/13 09:15:37
授業単元:C言語
問題文(含コード&リンク):文字列を入力し、圧縮しながら他の文字列配列に格納しなさい
使用する主な標準関数:strlen()、sprintf()など

実行画面
入力文字列(m1)==>AAAAAAABBBCddEEEE####
圧縮(m2):@7A@3BC@2d@4E@5#
圧縮比:72.7%

環境
OS: Windows
コンパイラ名とバージョン:ボーランド
言語:C
期限:
その他の制限:



508:デフォルトの名無しさん
07/09/13 10:02:28
>>507
マルチすんな
C/C++ に今答えを書き込んだけど消したくなった

509:507
07/09/13 10:16:30
>>508
m9(^Д^)プギャー

510:ぼるじょあ ◆hZ8e4Wjqvw
07/09/26 21:19:21
>>507
(・3・) エェー 暇だYO!

#include<stdio.h>
#include<string.h>

int main(void){
char m1[100+1], m2[100*3+1], *ptr=m2;
int m1_len, i;

printf("入力文字列(m1)==>");
scanf("%100s", m1);
m1_len=strlen(m1);
for(i=0;i<m1_len;i++) ptr+=sprintf(ptr, "@1%c", m1[i]);
printf("圧縮(m2):%s\n", m2);
printf("圧縮比:%.1f%%\n", strlen(m2)*100./m1_len);
return 0;
}

511:デフォルトの名無しさん
07/09/28 00:16:11
短!って思ったら、、ちょwww

もうPerlでいいよw
s/(.)\1+/"@".length($&).$1/ge

512:デフォルトの名無しさん
07/09/28 02:30:25
ぼるじょあへ挑戦状

君に花札のプログラムを作れるかな?
ルールは花合わせだ
おっと、無理ならやらなくてもいいんだぜ?
それじゃ、goodluck!

513:ぼるじょあ ◆hZ8e4Wjqvw
07/09/28 03:27:19
>>512
(・3・) エェー 挑戦ってことはAI同士の対戦ってことかYO!

514:デフォルトの名無しさん
07/09/28 14:44:39
->
を使ったプログラムを作れ

515:デフォルトの名無しさん
07/09/28 20:52:12
>>514
#include <stdio.h>
int main(void) {
printf("->");
return 0;
}


516:デフォルトの名無しさん
07/09/28 21:21:57
#include <stdio.h>
int main(void) {
int n = 0;
printf("%d", n-->0);
return 0;
}

517:デフォルトの名無しさん
07/10/06 18:44:59
[1] 授業単元:C++プログラミング
[2] 問題文(含コード&リンク):
「年(西暦)」「月」を入力したら,その月のカレンダーを表示するプログラムを作成しなさい。ただし,下記の条件を満たすものとする。
【条件】
(1)カレンダークラスを作成し,main関数でカレンダークラスの実体を生成し,カレンダークラス内のメンバ関数(show関数)を呼び出してカレンダーを表示する。
(2)カレンダークラスはカプセル化されていること。
(3)カレンダー表示には,年,月および曜日,日を表示すること。
(4)「閏年」「祝日」「節句」「二十四節気」の表記を可能にする。
(5)上記以外については自由に作成してよい。

[3] 環境
 [3.1] OS: Windows VISTA or XP
 [3.2] visual studio 2005
 [3.3] 言語: C++
[4] 期限: 2007/10/7 23:00まで。
[5] その他の制限: 特になし

よろしくお願いします。

518:ぼるじょあ ◆hZ8e4Wjqvw
07/10/06 19:52:43
>>517
(・3・) エェー 太陽暦から旧暦に変換する数式はないのかYO!

519:デフォルトの名無しさん
07/10/07 12:16:21
>>518
六曜でしょうか?
すみません、変換式わからないです


520:デフォルトの名無しさん
07/10/07 13:41:28
>>518
(4)でわからない数式の部分は省いてもらって良いです。
申し訳ないです

521:デフォルトの名無しさん
07/10/07 14:57:23
今日中は辛いな…
今日は研究が忙しい…


522:デフォルトの名無しさん
07/10/07 23:59:48
>>517です

>>521
期限は切れてしまってますが、待てます
研究のほうがんばってください


523:デフォルトの名無しさん
07/10/08 04:40:21
作るけどレイアウトとかは自分で調整してね

524:デフォルトの名無しさん
07/10/08 05:13:49
祝日設定が面倒だったので断念


525:デフォルトの名無しさん
07/10/08 13:42:01
ええ!?
突き落とされた気分です・・・

526:デフォルトの名無しさん
07/10/08 15:02:06
ためしにやってみてるけど面倒すぎるんだよな

527:デフォルトの名無しさん
07/10/08 16:58:08
途中まで。祝日とか二十四節気の表示は自分でやって。面倒すぎる。

#include "stdafx.h"
#include <iostream>
#include <string>
#include <map>
#include <cassert>

#define numof(a) (sizeof(a) / sizeof((a)[0]))

/** ある年ある月の日
 */
class CDay {
private:
int m_year;
int m_month;
int m_day;

public:
CDay(int year, int month, int day) : m_year(year), m_month(month), m_day(day)


528:デフォルトの名無しさん
07/10/08 16:59:26
{
assert(month >= 1 && month <= 12);
assert(year >= 0);
}

~CDay() {}

/** 曜日
*/
std::string GetDayOfWeek()
{
int nDayOfWeek = (5 * m_year / 4 - m_year / 100 + m_year / 400 + (26 * m_month + 16) / 10 + m_day) % 7;

static const char *szDayOfWeek[] = { "Sun", "Mon", "Tue", "Wed", "Thr", "Fri", "Sat" };
return szDayOfWeek[nDayOfWeek];
}


529:デフォルトの名無しさん
07/10/08 17:01:04

/** 節句
*/
bool GetSeasonalFestival(std::string& name)
{
struct SeasonalFestival {
int month;
int day;
char *name;
} stSeasonalFestivals[] = {
{ 1, 7, "Jinjitsu"},
{ 3, 3, "Joushi"  },
{ 5, 5, "Tango"   },
{ 3, 9, "Chouyou" }
};

name = "";

for (int i = 0; i < numof(stSeasonalFestivals); ++i) {
if (stSeasonalFestivals[i].month == m_month && stSeasonalFestivals[i].day == m_day) {
name = stSeasonalFestivals[i].name;
return true;
}
}

return false;
}


530:デフォルトの名無しさん
07/10/08 17:01:50

private:
CDay(CDay&);
CDay& operator =(CDay&);
};

/** ある年ある月のカレンダー
 */
class CCalender {
private:
int m_year;
int m_month;

public:
CCalender(int year, int month) : m_year(year), m_month(month)
{
assert(month >= 1 && month <= 12);
assert(year >= 0);
}

~CCalender() {}

/** カレンダーをコンソールに表示
*/
void Show()
{
ShowTitle();
ShowBody();
}


531:デフォルトの名無しさん
07/10/08 17:02:37

private:
/** その月の日数

@ref URLリンク(bal4u.dip.jp)
*/
int NumOfDay() const
{
static int days[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

if (m_month == 2) {
return days[1] + (m_year % 4 == 0 && m_year % 100 != 0 || m_year % 400 == 0);
} else {
return days[m_month-1];
}
}


532:デフォルトの名無しさん
07/10/08 17:07:09

/** 閏年
*/
bool IsLeapYear() const
{
return (0 == (m_year % 400)) || ((0 != (m_year % 100)) && (0 == (m_year % 4)));
}

/** タイトルを表示
*/
void ShowTitle() const
{
std::cout << std::endl;
std::cout << '\t'
     << m_year << '/' << m_month
     << (IsLeapYear() ? " (Leap Year)" : "") << std::endl;
std::cout << std::endl;
}


533:デフォルトの名無しさん
07/10/08 17:07:48

/** 日を表示
*/
void ShowBody() const
{
int nNumOfDay = NumOfDay();
for (int i = 1; i <= nNumOfDay; ++i) {
CDay day(m_year, m_month, i);

std::string strSeasonalFestival;
day.GetSeasonalFestival(strSeasonalFestival);

std::cout << i << "\t(" << day.GetDayOfWeek() << ")"
     << "\t" << strSeasonalFestival << std::endl;
}
}

private:
CCalender(CCalender&);
CCalender& operator =(CCalender&);
};

int _tmain(int argc, _TCHAR* argv[])
{
CCalender calender(2000, 1);
calender.Show();
return 0;
}



534:デフォルトの名無しさん
07/10/08 17:12:53
終わり。

ちなみに >>526 じゃないです。

535:ぼるじょあ ◆yBEncckFOU
07/10/08 19:14:44
(・3・) 一応できたけど我ながらひどい出来
     エラー処理とか表示の整形は自分でやってNE!
URLリンク(kansai2channeler.hp.infoseek.co.jp)

536:デフォルトの名無しさん
07/10/08 19:58:50
>>534
>>535
ありがとうございました。
お二人のプログラム使わさせていただきます^^

537:デフォルトの名無しさん
07/10/08 21:12:48
つかこんなもんをわざわざ作らせるなんて面倒な授業だな…。


538:デフォルトの名無しさん
07/10/08 21:49:07
ええ、この教授のだす課題はいつもこんな感じで
毎週地獄です

539:デフォルトの名無しさん
07/10/18 17:17:40
[1] 授業単元:C++実習
[2] 問題文(含コード&リンク):
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS: XP VISTA
 [3.2] visual studio 2005
 [3.3] 言語: C++
[4] 期限: 10/20 ~10:00
[5] その他の制限: 特になし

濃い内容ですが
よろしくお願いします。

540:デフォルトの名無しさん
07/10/22 13:41:11
1] 授業単元: c++プログラミング
[2] 問題文(含コード&リンク):
10個の製品の在庫管理のプログラムを作成しなさい。
全ての製品は初期在庫として、1000個の在庫を持っている。毎日80~120個ランダムに減っていく。
また、製品によって減っていく量は異なるものとする。
在庫量が300個(発注点)以下になった製品は発注をかけ、その三日後に500個納品される。
終了条件:1000日
単位時間: 日
出力の例:
製品A
 前日在庫量 需要量 当日在庫量
  320    120   200
  200    100   100
  100    110    0
○日に10個欠品しました!!
500個納品されました!!
  490    90   400

各製品ごとに上記のように表示されるようにしなさい。
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ: bcc
 [3.3] 言語: C++
[4] 期限:22日19時
[5] その他の制限: できれば、後から簡単に、初期在庫量・発注点・製品数などを変更できるようにしてください。

よろしくお願いします。


541:デフォルトの名無しさん
07/10/22 22:14:49
いくらなんでも期限ギリギリすぎるだろ

542:さとみ
07/10/23 20:22:42
#include <stdio.h>
#include <stdlib.h>
struct node{ int data;
struct node *next;
};
struct node *head;
void add_head(int x)
{ struct node *p;
p = (struct node *)malloc(sizeof(struct node));
p->data = x;
p->next = head;
head = p;}
void print_list(struct node *q)
{ struct node *p;
printf("list\n");
for(p = q;p != NULL;p = p->next){
printf("%d\n"p->data);}}
main(int argc, char *argv[])
{ int i, val, n;
head = NULL;
n = atoi(argv[1]);
for(i = 0;i < n; i++){
scanf("%d",&val);
add_head(val);}
print_list(head);
return(0);}
コンパイルしてみた結果二箇所にエラーが発生しました
間違えたどころどうか直してもらえないでしょうか
お願いします

543:デフォルトの名無しさん
07/10/23 21:40:46
>>542

宿題スレに回答あげたぞ

544:デフォルトの名無しさん
07/11/05 18:40:58
保守

545:00ち
07/11/08 16:19:05
[1] 授業単元:
[2] 問題文(含コード&リンク):0~99までランダムで得た値の平均と総計を求めるプログラムですが
      currentを使い、書き直したいですが教えてください。
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
int main(void)
{   int rints[30];
int i, sum=0;
int j = 0;
float avrg;
srand((unsigned)time(NULL));
for(j=0; j<1; j++){
printf("\n");
for(i=0; i<30; i++)
{    rints[i] = rand()%100;
printf( " %d ", rints[i] );
sum += rints[i];}
printf("\n");
avrg = sum / 10.f;
printf( " 総計: %d , 平均: %.2f\n", sum, avrg );
sum = 0; }
return 0;}
[3] 環境
 [3.1] OS: (Windows/Linux/等々)
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
 [3.3] 言語: C
[4] 期限:本日
[5] その他の制限:なし

546:デフォルトの名無しさん
07/11/08 16:22:06
[1] 授業単元:
[2] 問題文(含コード&リンク): URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 11月9日10:00まで]
[5] その他の制限: 特にありません
どうぞよろしくお願いします

547:デフォルトの名無しさん
07/11/08 16:23:36
>>546
マルチ乙
スレリンク(tech板:120番)

548:デフォルトの名無しさん
07/11/08 18:27:33
>>545
currentってなんでつか?

549:デフォルトの名無しさん
07/11/08 20:09:20
任意の自然数をキーボードから入力し、
素因数分解を行った結果を画面に出力するプログラムを作成すること

この問題をお願いします(^^)

550:デフォルトの名無しさん
07/11/08 20:35:22
>>549
任意と言うことは、グーゴルプレックスも入力できないとダメかしら。
む、難しいなぁ。

551:デフォルトの名無しさん
07/11/08 20:50:11
数字を入力して因数分解するだけでいいです

552:デフォルトの名無しさん
07/11/08 21:13:54
>>549
ヒント: テンプレ

553:デフォルトの名無しさん
07/11/08 21:16:26
#include <stdio.h>

int main(void)
{
int i, n;
scanf("%d", &n);

for(i=2; i<n; ) {
if(n%i==0) {
printf("%d * ", i);
n /= i;
}
else i++;
}
printf("%d\n", n);

return 0;
}


554:デフォルトの名無しさん
07/11/09 00:19:57
11月10日までなので急いでください。お願いします。ちなみに、
for文とif文だけでお願いします(^_^)


555:デフォルトの名無しさん
07/11/09 00:30:39
ありがとうございました。o(^o^)o
本当に助かります。o(^ヮ^)o

556:グーゴルプレックスは10の(10の10乗)乗だっけ?
07/11/09 10:28:31
>>551
だから、どんな数字?
単に「任意」では巨大な数字も入力できないといけないのか、
それとも1000程度の数字まで出いいのか判らないでしょ。

557:デフォルトの名無しさん
07/11/09 15:47:42
>>556
じゃあ巨大な数のほうで

558:デフォルトの名無しさん
07/11/11 06:29:06
JavaでいうところのBigIntegerを作れというのか
アホか

559:デフォルトの名無しさん
07/11/16 11:56:40
da

560:デフォルトの名無しさん
07/11/16 12:02:00
[1]C言語上級
[2]
入力ファイルフォーマット:
source-node destination-node packet-loss-rate
a b 0.3
a c 0.1
.
z w 0.9


Step1: 二行目からデータを読み込みます.例えば,node a から node bまで
のパケット損失率0.3から最後までに読むこと.ノードペア毎のパケット損失率
を記録する.
※ 下記変数が必要
char *node_pair_name[1000]; //ノードペア名を記録する,行ごとは一記録と
します.何行があるならば,何個の記録がある.後で使う.
double packet_loss_rate[1000];//ノードペア毎に記録する,
Step2: 読み込んだデータpacket_loss_rateをJI(double *x, int n)に
渡して,JIを計算します.
Step3: JI出力

以上のプログラムを作りなさい
[3]C言語
[4]11月18日

このプログラムがわかりません.よろしくお願いします.



561:デフォルトの名無しさん
07/11/16 14:39:57
[1] 授業単元: C
[2] 問題文:????を埋めよ
[3] 環境
 [3.1] OS: (Windows/Linux/等々)
 [3.2] コンパイラ名とバージョン: 任意
 [3.3] 言語: (C
[4] 期限:2007 11.16

562:デフォルトの名無しさん
07/11/16 14:43:32
#include <stdio.h>
#include <stdlib.h>
#define NMAX 20

/* リストの構成要素となる構造体 node_tag */
struct node_tag {
int num;
char name[NMAX];
??????? /* 自己参照:次のデータへのポインタ next */
};


int main(void)
{
/* 12の要素をもつ構造体配列の定義 */
struct node_tag Month[12] = { {1, "January", NULL},
{2, "February", NULL},
{3, "March", NULL} };
struct node_tag *p; /* ポインタ p */


???????
    p=&Month[0];
while (p!=NULL){
printf("%d %s\n", ???????, ???????); /* p の num と p の name を表示する */
p=??????? /* p を p の next とする */
}
return 0;
}



563:デフォルトの名無しさん
07/11/16 14:44:58
#include <stdio.h>
#include <stdlib.h>
#define MAX 20
#define MMAX 100
struct node_tag {
int num;
char name[NMAX];
??????? /* 自己参照:次のデータへのポインタ */
};
int main(void)
{
struct node_tag Meibo[MMAX]; /* 構造体配列の定義 */
int n=0; /* 配列の番号を格納する整数 n,初期値は 0 */
struct node_tag *head, *p; /* リストの先頭を指すポインタ head,新しく追加するノードを指すポインタ p */
head=NULL;
while ( scanf("%s", ???????) != EOF ){
Meibo[n].next=???????; /* 新しく追加するノード(Meibo[n]) の next が指すものは? */
head=???????;
???????=n++; /* Meibo[n] の num に配列番号を格納する整数を入れる */
}
     p=head;
while (p!=NULL){
printf("%d %s\n", ???????, ???????); /* p の num と p の name を表示する */
p=???????; /* p を p の next とする */
}
return 0;
}
以上の二つです
見づらいですが解答おねがいします

564:デフォルトの名無しさん
07/11/16 19:05:15
????なんて無くね?

565:デフォルトの名無しさん
07/11/16 19:47:55
?の個数が違うのはスルーで^^;

566:デフォルトの名無しさん
07/11/16 20:10:01
s/\?/梅/g

567:デフォルトの名無しさん
07/11/16 21:21:42
[1] 授業単元:プログラミング、関数基礎
[2] 問題文(含コード&リンク):
メイン関数において、2つの放物線
 y=ax2+bx+c
 y=px2+qx+r
の係数a、b、c、p、q、rをキーボードから入力し、その数値を関数に引数として渡す。
関数はその数値を用いて2曲線の交点の有無を調べ、その交点の個数を戻り値とし
てメイン関数に渡す(交点が無い場合は0、交点が1つの場合は1、交点が2つの場
合は2、交点が無限に存在する場合はー1を戻り値にする)。また関数は、もし交点が
有限個存在するならばそれらの交点の座標値をメイン関数に渡す。メイン関数は関数
から得たこれらの情報を得て、交点の個数を画面に表示し、さらにもし交点が有限個
存在するならばそれらの座標値を画面に表示する。そのようなプログラムを作成せよ。

[3] 環境
 [3.1] OS:Windows
 [3.3] 言語:C
[4] 期限: 2007年11月19日
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
C言語の基礎しか習っていません。
どなたかよろしくお願いします。


568:デフォルトの名無しさん
07/11/17 02:24:01
[1] 授業単元:プログラミング基礎
[2] 問題文(含コード&リンク):
① 3×10の2次元配列を用意する。
② キーボードから任意の文字列を3つ入力し、配列に入れる。
③ その入力データーから文字tがあるかどうかを判定し、見つけた場合、下図のように
   その2次元配列の場所をすべて画面に表示し、見つけた個数も表示する。
  入力データ;Computer、Data、Internet
  
  図 [0]行目の文字列を入力_>Computer
[1]行目の文字列を入力_>Data
[2]行目の文字列を入力_>Internet

[0]行目[5]列目に文字tを発見
    [1]行目[2]列目に文字tを発見
    [2]行目[2]列目に文字tを発見
    [2]行目[7]列目に文字tを発見
    
    文字tを全部で4文字見つけました  
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: 指定なし
[3.3] 言語: C
[4] 期限: 2007年11月19日
[5] その他の制限: 特にありません。お手数ですがよろしくお願いします。

                            


569:デフォルトの名無しさん
07/11/17 02:25:23
1] 授業単元:プログラミング基礎
[2] 問題文(含コード&リンク):
① 3×10の2次元配列を用意する。
② キーボードから任意の文字列を3つ入力し、配列に入れる。
③ その入力データーから文字tがあるかどうかを判定し、見つけた場合、下図のように
   その2次元配列の場所をすべて画面に表示し、見つけた個数も表示する。
  入力データ;Computer、Data、Internet
  
[0]行目の文字列を入力_>Computer
[1]行目の文字列を入力_>Data
[2]行目の文字列を入力_>Internet

[0]行目[5]列目に文字tを発見
[1]行目[2]列目に文字tを発見
[2]行目[2]列目に文字tを発見
[2]行目[7]列目に文字tを発見
    
文字tを全部で4文字見つけました  
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: 指定なし
[3.3] 言語: C
[4] 期限: 2007年11月19日
[5] その他の制限: 特にありません。お手数ですがよろしくお願いします。

                            


570:デフォルトの名無しさん
07/11/17 02:44:53
>>569
static char inputbuf[REPEAT][BUFSIZE];

int
main(void)
{
char *p = NULL;
int nfound = 0, i;

for (i = 0; i < REPEAT; i++) {
printf("[%d]行目の文字列を入力_>", i);
if (fgets(inputbuf[i], BUFSIZE, stdin) == NULL) {
perror("fgets");
exit(1);
}
}
for (i = 0; i < REPEAT; i++) {
p = inputbuf[i];
while ((p = strchr(p, CHAR)) != NULL) {
printf("[%d]行目[%d]列目に文字%cを発見\n", i+1, p-inputbuf[i]+1, CHAR);
nfound++;
p++;
}
}

printf("文字%cを全部で%d文字見つけました\n", CHAR, nfound);

return 0;
}

571:デフォルトの名無しさん
07/11/17 03:02:59
>>569
>>570がコンパイルできなかったら、ソースの先頭に以下の行を追加シル。
それと多重投稿は、ヤメレ。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>

#define REPEAT 3
#define BUFSIZE 10
#define CHAR 't'

572:デフォルトの名無しさん
07/11/17 03:25:36
多重投稿すみません。図のところのずれが少し気になりましたので。

573:デフォルトの名無しさん
07/11/17 03:26:38
あと助けてもらってありがとうございます。

574:デフォルトの名無しさん
07/11/17 03:49:02
ここのスレってもうひとつの宿題のスレとどうちがうの?

575:デフォルトの名無しさん
07/11/17 10:49:16
[1] 授業単元:統計学
[2] 問題文:
対数の足し算をするプログラムをつくれ。ただし計算
で用いるのはlog(x)=-1.966113,log(y)=-103.23,log(z)=-80.98,log(w)=0を用いよ。
(1)log(X+Y)
(2)log(X+Y+Z)
(3)log(W+X+Y+Z)

x=0.14 x=0.000000000000000000422
y=0.000000000000000023134 w=1ですが、w,x,y,z,を足してlogかけた値が
(4)になります。
しかしこの問題ではlogの値をexpかけずに計算せよ。
対数の足し算は以下を用いよ。
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS: LINUX
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 11月17日24時
[5] その他の制限:
お願いします。
それぞれ分けてつくってほしいんですが。

576:デフォルトの名無しさん
07/11/17 19:16:23
神経衰弱を行うゲームを作成すること。
ただし、カードは52枚全て使用し、絵柄の
区別は無いものとする。

このプログラムをお願いします。(^o^)
期限は、11月18日までです。

577:デフォルトの名無しさん
07/11/17 23:14:10
ぼるじょあいないのかーい?

578:homoじょあ ◆5OLf4yFnuM
07/11/18 01:42:53
(・3・) エェー 忙しいか酔っ払ってるかだお

579:デフォルトの名無しさん
07/11/18 03:17:08
575
ですけどもうOKです。
小数点とlogの関係をみてみたら
logの2くらいの差でもかなり大小ありました。

580:デフォルトの名無しさん
07/11/18 16:06:09
C言語ではなく、Fortranなんですが宿題教えてくれませんか。

・xとyの2つの数値の約数と最小公倍数、最大公約数を求めなさい。

581:デフォルトの名無しさん
07/11/18 16:09:52
>>580
C でやればいいんじゃないかな?

582:デフォルトの名無しさん
07/11/18 19:41:58
>>574
投稿が少ないから比較的スルーされにくいが、
能力が低いので難しい問題は解けない

583:デフォルトの名無しさん
07/11/18 19:47:17
>>580
Fortranつっても77と90じゃ違いすぎるんでどのFortranかハッキリしてもらえますか?
あと期限と、xとyはキーボードから入力するのか、コードに直接書き込むのかその辺の所も
ハッキリ書いて貰えますかね?

584:デフォルトの名無しさん
07/11/18 21:01:50
576ですけど、カードは54枚です。
期限は、明日までです。

585:デフォルトの名無しさん
07/11/18 21:16:06
詳細な説明が全く無いし、テンプレに従ってないからできません

586:デフォルトの名無しさん
07/11/18 21:16:11
>>584
おお、期限が迫ってきて、じょじょに小出しの情報が揃ってきたな。
もう少し待てば、重要な情報が得られるかもな。

587:デフォルトの名無しさん
07/11/18 21:17:49
580ですが、f77でコンパイルしているので、たぶん77だと思います。
unix環境で、端末エミュレータからmuleを起動して、xとyをキーボードから
入力していますが、参考になりますでしょうか・・・

588:デフォルトの名無しさん
07/11/18 22:20:40
>>580
Fortranはほとんど使わないんで酷いコードだが取りあえず動くはず(Salford FTN77で作動確認)
URLリンク(kansai2channeler.hp.infoseek.co.jp)

589:ぼるじょあ ◆hZ8e4Wjqvw
07/11/18 22:58:20
>>576
(・3・) エェー カード枚数間違えちゃったYO!
          直しておいてくれYO!
URLリンク(kansai2channeler.hp.infoseek.co.jp)

#define CARD_NUM 14

#define CARD_NUM 54

590:デフォルトの名無しさん
07/11/19 05:23:33
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):1次元変数c[2]を関数polyに送り、
c[0]x^2+c[1]x+c[2]=0の二つの解(実部と虚部:xre[2],xim[2])を
polyから受け取って、2つの解を表示するプログラム
(引数は、c,xre,ximとなる)
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語:C
[4] 期限: [2007年11月19日14:30まで]
[5] その他の制限:なし
期限は短いですが、よろしくお願いします

591:デフォルトの名無しさん
07/11/19 11:18:55
[1] 授業単元:C++実習
[2] 問題文(含コード&リンク):
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS: XP VISTA
 [3.2] コンパイラ名とバージョン: visual studio 2005
 [3.3] 言語: C++
[4] 期限: 11/21 ~10:00
[5] その他の制限: 特になし

よろしくお願いします。


592:デフォルトの名無しさん
07/11/19 13:15:11
>>590
出来たYO BCCだと発狂するYO
URLリンク(kansai2channeler.hp.infoseek.co.jp)


593:デフォルトの名無しさん
07/11/19 14:48:36
>>592
ありがとうございました
すごい助かりました

594:デフォルトの名無しさん
07/11/19 22:25:24
[1] 授業単元:C言語
[2] 問題文
ある打撃点から目標に向かってまと狙いを行い、命中させるプログラム。
打撃点から目標点までの距離、障害までの距離
障害の幅と高さ、および風速を初期設定条件とし、
ゲームをする時は距離と風速のみ表示
打撃点からの玉の発射角(θ)初速度(Vo)を設定すると到達距離を計算し
目標点との差を表示するプログラム
障害物に当たると失敗と表示させる。
目標点より手前に落ちても失敗と表示。
目標点からの玉の距離を表示させる。
[3] 環境
 [3.1] OS: XP VISTA
 [3.2] コンパイラ名とバージョン: BCC
 [3.3] 言語: C
[4] 期限: 11/21 ~9:30
[5] その他の制限: 特になし

595:デフォルトの名無しさん
07/11/19 23:15:08
XP VISTAって何?

596:デフォルトの名無しさん
07/11/20 02:02:35
xpとvista両方可能です、と

597:デフォルトの名無しさん
07/11/20 18:52:08
すいまんせん。マルチになってしまうのですが
時間がないのでこちらでできたらおねがいします。
[1] アルゴリズムとデータ構造
[2] URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] Windows
 [3.2] Visual Studio 2005
 [3.3] C
[4] 期限: 11月20日

598:ぼるじょあ ◆hZ8e4Wjqvw
07/11/20 18:55:29
>>597
(・3・) エェー 6 の部分しか変更しちゃダメなら無理だYO!
          gets について調べてみるといいYO!

599:597
07/11/20 19:30:36
>>598
6の部分しか変更しちゃいけないのは問2です。
問3はfgets使用OKです。
おねがいしますペコシ

600:homoじょあ ◆5OLf4yFnuM
07/11/20 20:58:27
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(void)
{
char buff[1002];
char *data[10000];
int kosu, i, j;

kosu = 0;

while(fgets(buff, sizeof(buff), stdin) != NULL)
{
if(strlen(buff) > 1000){
puts("入力が1000バイトを超えています");
for (i=0; i<kosu; i++)free(data[i]);
return 0;
}
else if(kosu >= 10000){
puts("入力は10000個までです");
for (i=0; i<kosu; i++)free(data[i]);
return 0;
}
data[kosu] = (char *) malloc( strlen(buff)+1 );
strcpy(data[kosu], buff);
kosu = kosu + 1;
}


601:homoじょあ ◆5OLf4yFnuM
07/11/20 21:00:24
/* ソート */
for(i=0; i<kosu-1; i++){
for(j=i; j<kosu-1; j++){
if(strcmp(data[i], data[j+1]) > 0){
char *swap;
swap = data[i];
data[i] = data[j+1];
data[j+1] = swap;
}
}
}

for (i=0; i<kosu; i++)
free(data[i]);

return 0;
}

602:デフォルトの名無しさん
07/11/20 22:20:16
>>600,601
凄い助かりました!
ありがとうございます。

603:デフォルトの名無しさん
07/11/22 01:44:37
[1] 授業単元: プログラミング演習
[2] 問題文(含コード&リンク):
今a.txt,b.txt,c.txt,d.txt,e.txtというファイルがある。(これらのファイルを<1>)
それぞれのファイルには「a」「b」「c」「d」「e」とかかれている。
また,A.txt,B.txt,C.txt,D.txt,E.txtというファイルがある(これらのファイルを<2>)
それぞれのファイルには「A」「B」「C」「D」「E」とかかれている。
<1>のファイルと<2>のファイルを読み込んでその中身を
aA
aB
aC
aD
aE
bA
bB
という風に表示せよ。つまり25行になります。
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C言語
[4] 期限:2007/11/22 24:00まで
[5] その他の制限:fscanfで読み込んでほしいんですが

まあ自分が作りたいのは5個のファイルと別の5個のファイルを
最初の5個のうちの1つのファイルに対して別の5個のファイルをつかって5つの
値を出すみたいな。で25個の値が出したいんです。


604:ぼるじょあ ◆hZ8e4Wjqvw
07/11/22 02:36:49
>>603
(・3・) エェー これでいいのかYO!
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define NELEMS(arr) (sizeof(arr)/sizeof(arr[0]))
char **get_list(char *fname_list[], int fname_num){
int i;
char **ret, buf[100+1];
FILE *fp;
ret=malloc(sizeof(*ret)*fname_num);
for(i=0;i<fname_num;i++){
fp=fopen(fname_list[i], "r");
if(fp==NULL || fscanf(fp, "%100s", buf)!=1){fclose(fp);free(ret);return NULL;}
ret[i]=strdup(buf);
fclose(fp);
}
return ret;
}
int main(void){
char *one[]={"a.txt", "b.txt", "c.txt", "d.txt", "e.txt"};
char *two[]={"A.txt", "B.txt", "C.txt", "D.txt", "E.txt"};
char **buf_one, **buf_two;
int i, j;
buf_one=get_list(one, NELEMS(one));
buf_two=get_list(two, NELEMS(two));
if(buf_one==NULL || buf_two==NULL) return 1;
for(i=0;i<NELEMS(one);i++)
for(j=0;j<NELEMS(two);j++)
printf("%s%s\n", buf_one[i], buf_two[j]);
return 0;
}

605:デフォルトの名無しさん
07/11/22 02:49:10
>>603
a.txt と A.txt が私のPCでは作れなかったんだけどやってみました。
意図は不明ですが仕様はこれで満たしているはず

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
char *fname[2][5] = {
{"a.txt","b.txt","c.txt","d.txt","e.txt"},
{"1.txt","2.txt","3.txt","4.txt","5.txt"}, };
FILE *fp;
char ch[2];
int cnt = 0, idx = 0;

for (cnt=0; cnt<sizeof(fname[0])/sizeof(fname[0][0]); ++cnt)
{
for (idx=0; idx<sizeof(fname)/sizeof(fname[0]); ++idx)
{
if ((fp = fopen(fname[idx][cnt], "r")) == NULL) exit(1);
fscanf(fp, "%c", &ch[idx]);
fclose(fp);
}
printf("%c%c\n",ch[0], ch[1]);
}
return 0;
}


606:605
07/11/22 02:51:19
被ったしよくみたら全然違いました。すみませんでしたm(_ _)m

607:デフォルトの名無しさん
07/11/22 08:47:28
>604
ありがとう

608:デフォルトの名無しさん
07/11/23 23:30:46
[1] 授業単元:確率論
[2] 問題文(含コード&リンク):


この図のような状態遷移をして
URLリンク(kossie.net)
最終的にendにきたときの状態確率を出したいんですけど。
この下のプログラムは小数で計算しています。概要に付いても
説明しています。
URLリンク(kansai2channeler.hp.infoseek.co.jp)
この状態確率を対数で計算して、上のプログラムでの値といっしょになるよう
にしたいんですけど。

logの加算には場合わけが必要で、そのプログラムは作りました。
URLリンク(kansai2channeler.hp.infoseek.co.jp)

logの計算途中で-infとかnanとかでてくるので
それを調べるためにprintf文大量に使ってますけど みにくかったら消してください。

小数計算は0*0.5で0になるからいいですけどlogはそうはいかないですから。
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: c
[4] 期限: 24日まで
[5] その他の制限: 特になし

609:デフォルトの名無しさん
07/11/24 07:42:36
ほかで質問しましたが解答がないので、まじでお願いします!!
[1] 授業単元: システム解析

[2] 問題文(含コード&リンク):2変数非線形連立方程式の解を求めるnewton-rapson法のプログラムを作成し以下の問題を解け
①x^2+y^2-8=0 と x+y=0 で初期点(x(x0),y(y0))∈[-4,-4]×[4,4]を10000個とり、初期点に対する収束値の関係を2次元で図示する。
収束値の関係の座標を出すこと。

②x^3-3xy^2-8=0 と x^3-3x^2y=0 で初期点(x(x0),y(y0))∈[-1/2,-1/2]×[1/2,1/2]を10000個以上(百万個程度を推奨する)とり、初期点に対する収束値の関係を2次元で図示する。
収束値の関係の座標を出すこと。


[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: ([2007年11月25日23:00まで]
[5]その他:^は累乗を示します。たとえば、x*x=x^2です。
2問ありますが、一問だけでもといていただけると助かります。2変数ということで手も足もでません、、、
よろしくお願いします。


610:デフォルトの名無しさん
07/11/24 15:47:30
[1] 授業単元: プログラミング演習

[2] 問題文
CD-Rは1枚~10枚で1枚が100円、11枚から100枚で1枚が90円、101枚以上で1枚が70円とする。枚数nに対する金額を計算するプログラムを作成しなさい。終了時にはCtrl+Z(Enter)と入力する

[3] 環境
 [3.1] OS:Windows
 [3.3] 言語:C

[4] 期限: 11/30
[5] その他の制限: 特になしです。お願いします。

611:デフォルトの名無しさん
07/11/24 19:16:03
>>610
#include <stdio.h>
#include <conio.h>

int main(void)
{
int num, price;

printf("CDの購入枚数を入力してください->");
scanf("%d", &num);

if(num < 0) return 1;
else if(num < 11) price = num * 100;
else if(num < 101) price = num * 90;
else price = num * 70;

printf("合計金額は %d 円です。\n", price);
_getch();

return 0;
}

612:デフォルトの名無しさん
07/11/24 19:22:48
>>610
これ、10枚買うときは 11 枚買って一枚捨てるとか、
79枚買うときは 101枚買って 22枚捨てるとかやるの?

613:612
07/11/24 20:55:23
>>610
ということで作ってみた
#include <stdio.h>
int main(void){
int price[]={100,90,70,-1};
int number[]={1,11,101,-1};
int i,ret,pr,minpr,num,index,sute,s;
for(;;){
ret=scanf("%d",&num);
if(ret==EOF){break;}
if(ret!=1){scanf("%*c");fprintf(stderr,"入力エラー\n");continue;}
for(i=0;number[i]!=-1;i++){
if(num>number[i]){pr=num*price[i];s=0;}
else{pr=number[i]*price[i];s=number[i]-num;}
if(i==0 || pr < minpr){index=i;minpr=pr;sute=s;}
}
if(sute==0){printf("%d 円\n",minpr);}
else{printf("%d 円で %d 枚買って、 %d 枚捨てて下さい\n",minpr,number[index],sute);}
}
}


614:デフォルトの名無しさん
07/11/24 21:53:13
>>611->>613 
大変ありがとうございます。
>>612
そういう作業は必要ないと思います。

615:デフォルトの名無しさん
07/12/01 13:07:17
1] 授業単元:プログラミング言語
[2] 問題文
  キーボードから実数を5個入力し、その入力データのうち3つのデータから実数の
  平均値を求める。
  求める平均は最初のデータから3個分、次のデータから3個分および3番目の
  データから3個分の計3種類とする。 
  平均をするプログラムは関数化すること引数で値を渡すようにすること。
  入力データ 1、1 1、2 1、3 1、4 1、5  
[3] 環境
 [3.1] OS: windows xp
 [3.2] コンパイラ名とバージョン: 特に指定なし
 [3.3] 言語: C
[4] 期限: 12月3日 18時
[5] その他の制限: 特になし




616:homoじょあ ◆5OLf4yFnuM
07/12/01 18:09:32
>>615
#include <stdio.h>

double average(double a, double b, double c){
return (a + b + c)/3.0;
}

int main(void){
double input[5];
int i;
for(i=0; i<5; i++){
printf("%dつ目->", i+1);
scanf("%lf", &input[i]);
}
for(i=0; i<3; i++)printf("%d-%d:%f\n", i+1, i+3, average(input[i],input[i+1],input[i+2]));
return 0;
}


617:デフォルトの名無しさん
07/12/01 18:38:10
615ですが、ありがとうございます。

618:デフォルトの名無しさん
07/12/02 03:35:37
あげ

619:デフォルトの名無しさん
07/12/02 06:37:09

■最近流行りのSM系サイトを知っていますか?

それは「SMプレイをすること」を最終目的とした人達が集まる出会い系サイトのことです。
普通の出会い系サイトと一味違った、熱い出会いが全国各地で繰り広げられています。

《ブログ SM系サイトが会える訳》
URLリンク(smsite.blog123.fc2.com)

ブログでは管理人一押しのSM系サイトを紹介しています。
是非ご利用下さい。

620:デフォルトの名無しさん
07/12/02 11:54:57
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):西暦y年m日d日の前の日と次の日の日付を求めてセットする関数
Lv1:大小の月はなし(各月の日数は30日、閏年なし(一年は360日)
Lv2:大小の月あり(30日の月と31日の月を考慮する。
Lv3:大小の月あり(30日の月と31日の月を考慮する。)閏年あり
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名:gcc
 [3.3] 言語: C
[4] 期限: 12月6日
[5] その他の制限: ポインタまで習ってます。

621:デフォルトの名無しさん
07/12/02 13:56:18
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
数字を十五個入力し、その中から五番目に大きい数値を求める
[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ名とバージョン:Visual Studio.NET
 [3.3] 言語:C
[4] 期限:12月2日 24:00]
[5] その他の制限:
forとifを使ったものでお願いします

622:homoじょあ ◆5OLf4yFnuM
07/12/02 14:16:48
>>620
(・3・) エェー プロトタイプ宣言希望
          y,m,dの3つを引数で受けるのはわかるけど
          前の日と次の日の格納をどうするのか不明だYO
          まさか引数9個ですKA?

623:homoじょあ ◆5OLf4yFnuM
07/12/02 14:27:07
>>621
#include <stdio.h>

int main(void){
int input[15], i, k;
for(i=0; i<15; i++)scanf("%d", &input[i]);
for(i=0; i<5; i++){
for(k=i+1; k<15; k++){
if(input[i] < input[k]){
int swap = input[i];
input[i] = input[k];
input[k] = swap;
}
}
}
printf("五番目に大きい数値:%d\n", input[48]);
return 0;
}

(・3・) エェー 並べ替えて5番目見てるだけだがYO
          もしかして、 例えば9 9 9 9 9 9 9 9 9 9 8 7 6 5 4って入力されたら
          答えは5になる?

624:デフォルトの名無しさん
07/12/02 14:28:54
ちょ、48w

625:homoじょあ ◆5OLf4yFnuM
07/12/02 14:37:00
>>624
(@3@) エェー マジか!

626:620
07/12/02 16:02:28
>>622

void yesterday(int*y,int*m,int*d){/* */}
void tomorrow(int*y,int*m,intd){/* */}

プログラミング苦手なのでよくわからないですが
こうかかれてました。

627:デフォルトの名無しさん
07/12/02 16:55:41
void yesterday(int*y,int*m,int*d)
{
struct tm tmp = {0, 0, 0, *d - 1, *m - 1, *y};
mktime(& tmp);
*y = tmp.tm_year;
*m = tmp.tm_mon + 1;
*d = tmp.tm_mday;
}
void tomorrow(int*y,int*m,intd)
{
struct tm tmp = {0, 0, 0, *d + 1, *m - 1, *y};
mktime(& tmp);
*y = tmp.tm_year;
*m = tmp.tm_mon + 1;
*d = tmp.tm_mday;
}


628:デフォルトの名無しさん
07/12/02 18:52:38
1] 授業単元:C言語
[2] 問題文:次のデータに対して0≦x≦1.4の範囲で、台形公式により面積を求めよ。
      データ URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:
 [3.3] 言語: C
[4] 期限: 2007年12月3日まで
[5] その他の制限:1.入力はテキストファイルからやると楽
         2.出力はディスプレイ上でOK
お願いします。

629:デフォルトの名無しさん
07/12/02 20:23:34
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):長いので。
URLリンク(kansai2channeler.hp.infoseek.co.jp)
こいつの(i)です。
[3] 環境
 [3.1] OS: vineLinux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 明日提出なんでできれば今日のうちにお願いします
[5] その他の制限: 特になしでいいと思います。
自分なりに書いてみたソース
URLリンク(kansai2channeler.hp.infoseek.co.jp)
繰り返しがうまくできません。
よろしくお願いします。


630:homoじょあ ◆5OLf4yFnuM
07/12/02 23:32:28
>>628
(・3・) エェー で、どんな式?

631:628
07/12/02 23:45:11
なんとか自力でできました。
homoじょあさん レスしてくれてありがとうございます。

632:homoじょあ ◆5OLf4yFnuM
07/12/02 23:50:08
(・3・) アルェー そりはよかったですYO

633:デフォルトの名無しさん
07/12/03 00:01:17
[1] 授業単元:プログラミング実習
[2] 問題文(含コード&リンク):
URLリンク(kansai2channeler.hp.infoseek.co.jp)  この問題内の「動的な多次元配列の手法」の1~3は
URLリンク(kansai2channeler.hp.infoseek.co.jp)  ←にあります
課題1は何とかなりました→ URLリンク(kansai2channeler.hp.infoseek.co.jp) です
これを改良して課題2,3へ行くので、上げさしていただきました           
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: bcc32
 [3.3] 言語: C言語です
[4] 期限: 金曜日までです
[5] その他の制限: 特にありません

宜しくお願いします

634:homoじょあ ◆5OLf4yFnuM
07/12/03 00:33:08
>>629
(・3・) エェー めんどいから1ファイルにしちゃったYO
          適当に分けてNE

URLリンク(kansai2channeler.hp.infoseek.co.jp)

635:629
07/12/03 01:03:25
>>634
あざっす。と言いたいけどレベルたけえw
これ提出したら絶対怪しまれる
でも制限なしとか書いちゃったの自分なんで
あとは自力でがんばります


636:デフォルトの名無しさん
07/12/05 10:51:31
[1] 授業単元:C言語
[2] 問題文
まず、次のメンバを持つ構造体をtypedef宣言を使用し、data型として準備しなさい。
ただし、typedef宣言において構造体タグ名は省略しなさい。
char型の配列変数id(配列サイズ:8)、int型の変数n
main関数では、このdata型の変数personを宣言し、そのメンバidを 012345、nを25として初期化する。
続いて、実行結果に示すように「学籍番号・・・の現在の得点:」とともにpersonのメンバidとnを表示した後、personをadd_num関数に渡す。
さらにadd_num関数から戻る値をpersonに格納し、「学籍番号・・・の総合得点:」とともにpersonのメンバidとnを表示するプログラムを作成しなさい。
ただし、add_num関数は、data型の構造体person2に受取った内容を格納し、「今回の得点は60点満点で何点ですか?」の質問とともにキーボードによりint型変数cに得点を入力した後、person2のメンバnにcの値を加算し、person2の内容を返すように作成しなさい。

[3] 環境
 [3.1] OS: Windows XP
 [3.2] visual studio 2005
 [3.3] 言語: C
[4] 期限: 12月6日9:30

実行結果例
学籍番号012345の現在の得点:25
今回の得点は60点満点で何点ですか?
45
学籍番号012345の総合得点:70


よろしくお願いします


637:デフォルトの名無しさん
07/12/05 10:54:34
[1] 授業単元:C言語
[2] 問題文
まず、次のメンバを持つ構造体をtypedef宣言を使用し、data型として準備しなさい。
ただし、typedef宣言において構造体タグ名は省略しなさい。
char型の配列変数id(配列サイズ:8)、int型の変数n
main関数では、このdata型の配列変数personを配列サイズ5で宣言する。
続いて、person[0]、person[1]、person[3]、person[3]、person[5]の順にこれらの内容を一つずつadd_num関数に渡し、その都度add_num関数から戻る内容をperson[0]、person[2]・・・に格納する。
その後、5つのperson[i]のメンバidとnを「学籍番号・・・の得点」として表示するプログラムを作成しなさい。
ただし、add_num関数は、data型の構造体person2に受取った内容を格納し、「学籍番号7桁を入力してください。」の質問とともにキーボードによりperson2のメンバidに学籍番号を入力、
また、「今回の得点は何点ですか?」の質問とともにキーボードによりperson2のメンバnに得点を入力し、person2の内容を返すように作成しなさい。

[3] 環境
 [3.1] OS: Windows XP
 [3.2] visual studio 2005
 [3.3] 言語: C
[4] 期限: 12月6日9:30

実行結果例

学籍番号7桁を入力してください。
0123456
今回の得点は何点ですか?
70
学籍番号7桁を入力してください。
0124680
今回の得点は何点ですか?
80
学籍番号0123456の得点:70
学籍番号0124680の得点:80

よろしくお願いします

638:デフォルトの名無しさん
07/12/05 18:11:43
[1] 授業単元:C言語
[2] 問題文
int型の値を変数bで受け取り、次の演算を行ってbの値を返すadd_num関数を作成しなさい。
[add_num関数内の処理]
「今回の得点は60点満点で何点ですか?」と画面表示した後、キーボードからint型変数cに値を入力する。
続いて、変数bにcの値を加算し、bの値を返す。
次に、main関数でint型変数nを値25で初期化し、nの値を「現在の得点:」とともに表示した後、add_num関数にnの値を渡す。そしてadd_num関数が返した値を再び変数nに格納し、nの値を「総合得点:」とともに右のように表示するプログラムを作成しなさい。

[3] 環境
 [3.1] OS: Windows XP
 [3.2] visual studio 2005
 [3.3] 言語: C
[4] 期限: 12月6日9:30

実行結果例
現在の得点:25
今回の得点は60点満点で何点ですか?
(48)
総合得点:73
()はキーボード入力


639:デフォルトの名無しさん
07/12/05 18:15:09
[1] 授業単元:C言語
[2] 問題文
まず、次のメンバを持つ構造体をtypedef宣言を使用し、data型として準備しなさい。
ただし、typedef宣言において構造体タグ名は省略しなさい。
char型の配列変数id(配列サイズ:8)、int型の変数n
main関数では、このdata型の変数personを宣言し、そのメンバidを 012345、nを25として初期化する。
続いて、実行結果に示すように「学籍番号・・・の現在の得点:」とともにpersonのメンバidとnを表示した後、personのメンバnのみの値をadd_num関数に渡す。
さらにadd_num関数から戻る値をpersonのメンバnに格納し、「学籍番号・・・の総合得点:」とともにpersonのメンバidとnを右のように表示するプログラムを作成しなさい。
ただし、add_num関数は、int型の変数bに受取った値を格納し、「今回の得点は60点満点で何点ですか?」の質問とともにキーボードによりint型変数cに得点を入力した後、変数bにcの値を加算し、bの値を返すように作成しなさい。
[3] 環境
 [3.1] OS: Windows XP
 [3.2] visual studio 2005
 [3.3] 言語: C
[4] 期限: 12月6日9:30
実行結果例
学籍番号012345の現在の得点:25
今回の得点は60点満点で何点ですか?
(45)
学籍番号012345の総合得点:70
()はキーボード入力

よろしくお願いします

640:デフォルトの名無しさん
07/12/08 13:48:01
1] プログラミング基礎
[2]• 3×3の2次元配列を用意する.これは外部変
数とする.
• キーボードから任意の実数を9個入力し,順番
に配列にいれる.([0][0]->[0][1]->[0][2]->....)
• その入力データから3×3の配列の縦と横のそ
れぞれの平均(実数)を求め,画面に表示する.
なお,平均を求めるプログラムは関数化するこ
と.(引数は使わないように)
• 入力データ
– 1.1 1.2 1.3 1.4 1.5 ・・・・
[3] 環境
 [3.1] Windows
 [3.2] コマンドプロンプト 秀丸
 [3.3]言語 C
[4]期限 月曜日18:00
[5] よろしくお願いします。


641:デフォルトの名無しさん
07/12/08 14:33:50
[1] 授業単元: コンピュータープログラミング

[2] 問題文
1日目はn円、2日目はn*2円、と前日の倍額を貯金したら何日で1000万円を超えるか?貯金の合計金額は?を計算するプログラムを作成しなさい。ただし、利子は考えないものとする。

[3] 環境
 [3.1] OS:Windows
 [3.3] 言語:C

[4] 期限: 12/14
[5] その他の制限: 可能ならホワイル文使用でお願いします。




642:デフォルトの名無しさん
07/12/08 19:51:24
>>640 出来たYO~
URLリンク(kansai2channeler.hp.infoseek.co.jp)

>>641 longで十分だけどunsigned longにしてみたYO ~
#include<stdio.h>
int main(void){
    unsigned long int n,d;
    d=1;
    printf("1日目の金額:");
    scanf("%d", &n);
    while(n < 100000000){
        n=2*n;
        d=d+1;
    }
    printf("%d日で1000万円を超えます\n",d);
    printf("%d日目の金額%u円",d,n);
    return 0;
    

643:デフォルトの名無しさん
07/12/10 20:44:24
[1] 授業単元: C++
[2] 問題文:以下のような、クラスphdataを作成せよ
・身長(cm)と体重(kg)を格納する変数をもつ
・コンストラクタで、各変数に値を格納させる
・オブジェクトを浮動小数点数に変換した際には、BMI値を返すようにする
そしてmain()関数で、簡単な動作確認を行うこと。

※BMI = 体重(kg) / [身長(m)×身長(m)]
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン:Visual Studio 2005
 [3.3] 言語:C++
[4] 期限: 12/20
[5] その他の制限: なし

644:デフォルトの名無しさん
07/12/10 21:38:24

内容:
[1] 授業単元:c++基礎
[2] 問題文
  1: 1000以下の素数をかぞえるプログラムを作り
     そのプログラムについて実行時間をTIME、timeのそれぞれ方法で測定しなさい。
     ただし、TIME、timeの精度はそれぞれ1桁、2桁とする。また、そのプログラムをコンパイルしたコマンドを用い、
     サンプルプログラムに手を加えてはいけない。つまり、この評価ではプログラムをメモリに読み込む時間も含まれる。
     2つの方法の実行時間を比較し、どちらが早いか答えよ
  2:second.exeの応答時間を測定せよ。なお、有効数字は2桁とする
  3:起動時間を有効数字2桁まで測定するプログラムを作り、1で作ったプログラムの一部(外側のfor文全体)の起動時間を測定せよ
    
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン: Visual Studio 2003
 [3.3] 言語:C++
[4] 期限:[2007年12月12日23:59まで]


645:homoじょあ ◆5OLf4yFnuM
07/12/10 22:13:26
>>643
#include <iostream>
using namespace std;

class phdata{
private:
double height, weight;
public:
phdata(double height, double weight);
operator double();
};

phdata::phdata(double height, double weight){
this->height = height;
this->weight = weight;
}

phdata::operator double(){
return weight*10000/(height*height);
}

int main(){
phdata data(172.5, 75.4);
cout << "BMI:" << (double)data << endl;
return 0;
}


646:homoじょあ ◆5OLf4yFnuM
07/12/10 22:18:24
(・3・) エェー TIMEとtimeって知らないYO
          サンプルてなんだYO

647:664
07/12/11 00:16:39
すいません・・
いろいろとぬけてました
TIME=TIMEコマンド
time=time関数
サンプルプログラム=1000以下の素数を数えるプログラムです

申し訳ございません



648:664
07/12/11 01:31:02
すいません・・あとひとつ
second.exeってのは
@echo off
second.exe
FOR /L %%I IN (1,1,10000) DO A.exe >NUL
second.exe
PAUSE



649:デフォルトの名無しさん
07/12/11 07:56:25
>>645
助かりました、ありがとうございます

650:デフォルトの名無しさん
07/12/11 16:31:53
符号無し整数を左右にシフトした値が、2のべき乗での乗算や除算と等しくなることを確認するプログラムを作成せよ


誰か助けて

651:デフォルトの名無しさん
07/12/11 19:45:52
hoge1 = x >> 1;
hoge2 = x << 1;
hoge3 = x * 2;
hoge4 = x / 2;

hoge1から4をprintfで確認してみてはどうだろう。
xはunsigned int型変数で値は適当で構わない。

652:デフォルトの名無しさん
07/12/11 20:14:14
>>650
たまたまサンプルしたものが一致するだけじゃ「確認」って言わないんだろうな。
やっぱ0から計算できる限界までシフトと乗算、除算が一致することを
全部調べるんだろうね。

653:デフォルトの名無しさん
07/12/12 09:59:40
#include <stdio.h>
#include <limits.h>
int main(void){
  unsigned int i=0;
  while(1){
    if((i<<1)!=(i*2)){
      printf("%uで乗算と左シフトが異なる。\n",i);
      break;
    }
    if((i>>1)!=(i/2)){
      printf("%uで除算と右シフトが異なる。\n",i);
      break;
    }
    if(i==UINT_MAX){
      printf("%uまで同じだと確認した。\n",i);
      break;
    }
    ++i;
  }
  return 0;
}

654:homoじょあ ◆5OLf4yFnuM
07/12/12 22:26:26
>>647-648
(・3・) エェー さっぱりわからないごめんNE

655:デフォルトの名無しさん
07/12/13 13:31:45
[1] 授業単元:C
[2] 問題文):①「ファイル名を受け取って,ファイルが読み込みモードでオープンできれば1を返し,オープンできなければ0を返す」関数 FileExist を作成する.
コマンドラインから入力されたファイルの存在を,関数 FileExist を利用して確認する.
ファイルが存在すればファイルの中身をそのまま表示するプログラムを完成しなさい.
②以下のプログラムをもとにして,次の仕様を満たすプログラムを完成しなさい.
コマンドラインからファイル名を受け取って,読取りモードでオープンすることによりそのファイルの存在を確認する.
シークする位置とシークするバイト数を受け取って,その位置の文字のASCIIコード(10 進数)を表示する.
[3] 環境
 [3.1] OS: Windows 
[3.2] コンパイラ名とバージョン: 任意
 [3.3] 言語: C
[4] 期限: 2007年12月d14日16:00まで
[5] その他の制限: 特になし

656:デフォルトの名無しさん
07/12/13 13:33:59
#include <stdio.h>
#include <stdlib.h>
??????? /* FileExist 関数の定義 */
int main(???????){
FILE *fp;
int ch;
     if (???????){
printf("There is no FILE NAME. \n");
exit(1);}
if (???????) { /* FileExistを利用 */
fp = ???????
while(???????){
putchar(ch);}
???????
}else {
printf("FILE OPEN error. \n");}
return 0;
}
???????
{
FILE *fp;
    if (???????) {
return 0; }
???????
return 1; }



657:デフォルトの名無しさん
07/12/13 13:35:28
#include <stdio.h>
#include <stdlib.h>
int main(???????){
FILE *fp;
long pos;
int i,j;
if (???????) {
printf("USAGE: %s \n", ???????);
exit(1);}
if (???????){
printf("FILE OPEN error: %s \n", ???????);
exit(1);
}else {
printf("Input seek NO. :");
scanf("%ld", &pos);
printf("Input seek BYTES:");
scanf("%d", &j);
         for (i=0; i < j; i++){
if (???????){
printf("seek ERROR. ");
exit(1);}
printf("%d byte: %d \n", i, ???????);}
??????? /* ファイルのクローズ */
}return 0;
}


658:デフォルトの名無しさん
07/12/13 13:36:21
655,656,657の回答お願いします

659:デフォルトの名無しさん
07/12/13 15:49:19
>>656
URLリンク(kansai2channeler.hp.infoseek.co.jp)
>>657
URLリンク(kansai2channeler.hp.infoseek.co.jp)

660:デフォルトの名無しさん
07/12/13 16:09:14
659の人回答サンクス!

661:いときん
07/12/14 16:09:12
よろしくおねがいします。

URLリンク(kansai2channeler.hp.infoseek.co.jp)

96です。

662:いときん
07/12/14 20:36:53
上の補足です。

プログラミングのここをこうしたらもっとうまくいくよ、とかあったら、
訂正もよろしくおねがいします。

もうすこしかえられるとおもうので..

663:デフォルトの名無しさん
07/12/15 09:10:16
661,662です。

解決しました。
ありがとうございました。

664:デフォルトの名無しさん
07/12/15 14:54:18
[1] 授業単元:プログラミング
[2] 問題文:n個の数データをキーボードから入力し、最大値と最小値を求めるプログラムを作成しなさい
 [3.1] WindowsXP
 [3.2] コンパイラ名とバージョン: fujitu workbench v4.0L10
 [3.3] 言語: C C++
[4] 期限: 12/21
[5] その他の制限:なし

665:デフォルトの名無しさん
07/12/15 19:05:41
プログラミング基礎
[2]• ファイルから数値データを読み込み,その数値の平均をファイルに書き込むプログラ
ムを作成する
• 数値データは全部で100行(ファイルには実際に100 行以上存在している)
ファイル名: kadai.datとする

• 平均を書き込むファイル名はheikin.dat とする.平均はすべてのデータ(600個)の平
均とする
[3] 環境
 [3.1] Windows
 [3.2] コマンドプロンプト 秀丸
 [3.3]C
[4] 12月17日18時
[5]665のファイルを埋める形式です。よろしくお願いします

666:デフォルトの名無しさん
07/12/15 19:09:06
すみません665のファイルです
include "stdio.h"
/* file_read 関数は【】内を記述する */
double file_read( void )
{
【 】
int i, j;
double data[600];
double heikin;
【 】
for( i=0 ; i<600 ; i+=6 )
{
for( j=0 ; j<6 ; j++ )
【 】
}
for( i=0, heikin=0.0 ; i<600 ; i++ )
{
heikin += data[i];
}

heikin /= 600.0;
printf("heikin -> %lf\n",heikin);
【 】
return heikin;
}

/* file_write 関数の中身を全部記述すること */
void file_write( double heikin )
{
/* ここの中身を記述する */
}


667:デフォルトの名無しさん
07/12/15 19:37:46
URLリンク(viptv.atspace.com)

668:homoじょあ ◆5OLf4yFnuM
07/12/15 21:18:16
>>664
#include <iostream>
#include <vector>
using namespace std;

int main(){
vector<int> data;
while(true){
int num;
cout << "数値を入力:";
cin >> num;
if(num < 0)break;
data.push_back(num);
}
sort(data.begin(), data.end());
cout << "最大:" << data[data.size()-1] << endl;
cout << "最小:" << data[0] << endl;
}

669:デフォルトの名無しさん
07/12/16 19:04:59
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク): URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS: (Windows/Linux/等々)
 [3.2] コンパイラ名とバージョン: bcc32
 [3.3] 言語: C
[4] 期限: 2007/12/18
[5] その他の制限: 構造体を使う


670:homoじょあ ◆5OLf4yFnuM
07/12/16 20:24:48
>>665
(・3・) エェー 結局100行なのか600行なのかわからんぜYO
          サンプルの読み込みファイルはないかYO
          あと、ソース内によくわからない2重ループがあるんだけど説明ないかNA?

671:homoじょあ ◆5OLf4yFnuM
07/12/16 20:26:06
>>669
(・3・) エェー 構造体の定義どこだお?

672:デフォルトの名無しさん
07/12/16 22:29:40
>>671

struct sdate{
int year;
int month;
int day;
};


673:デフォルトの名無しさん
07/12/17 15:46:26
[1] 授業単元:C
[2] 問題文: 問①以下のプログラムをもとにして,標準入力から受け取った文字を 「2進数表示したもの」と「その補数」を表示するプログラムを作成しなさい.
ビット演算子を用いてプログラムを作成すること.
問②以下のプログラムをもとに,標準入力から0以上の整数を 1 つ受け取り (scanf を用いて整数を符号無し整数型 unsigned 型の変数に読み込む), 8で割った余りを計算するプログラムを作りなさい.
ビット演算子を用いてプログラムを作成すること.
[3] 環境
 [3.1] OS:Windows xp
 [3.2] コンパイラ名とバージョン:任意
 [3.3] 言語: C
[4] 期限: ([2007年12月19日15:00まで]
[5] その他の制限:特になし

674:デフォルトの名無しさん
07/12/17 15:47:11
問①
#include <stdio.h>
#include <stdlib.h>

void printBinary(char);

int main(void)
{
char ch;

printf("Input character: ");
scanf("%c", &ch);
printBinary(???????);
printBinary(???????);

return 0;
}


void printBinary(char x)
{
int i;

for (i= ???????; ???????; i--) {
???????
}
putchar('\n');
}


675:デフォルトの名無しさん
07/12/17 15:49:48
問②
#include <stdio.h>
#include <stdlib.h>
void printBinary2(unsigned);
int shou8(unsigned);int main(void)
{
unsigned n;
printf("Input non-negative integer: ");
scanf("%d", &n);
printBinary2(???????);
printBinary2(???????);
printf("%d %% 8 = %d", n, shou8(n));
return 0;
}void printBinary2(unsigned x){
int i;
for (i = ???????; ???????; i--) {
???????}
putchar('\n');}
int shou8(unsigned x)
{int i, j=1, sum=0;
for (i = ???????; ???????; i++) {
if( ??????? ){
??????? }
j *= 2;
}return(sum);}


676:デフォルトの名無しさん
07/12/17 15:50:32
673 674 675です
回答お願いします

677:homoじょあ ◆5OLf4yFnuM
07/12/18 00:22:29
>>672
(・3・) エェー 関数だけ作ってみた
int preceedp(struct sdate d1, struct sdate d2){
if(d1.year < d2.year){
return 1;
}else if(d1.year == d2.year){
if(d1.month < d2.month){
return 1;
}else if(d1.month == d2.month){
if(d1.day < d2.day){
return 1;
}
}
}
return 0;
}

int succeedp(struct sdate d1, struct sdate d2){
return preceedp(d2, d1);
}

int samedayp(struct sdate d1, struct sdate d2){
if(d1.year == d2.year && d1.month == d2.month && d1.day == d2.day)return 1;
return 0;
}

int compdate(struct sdate d1, struct sdate d2){
if(samedayp(d1, d2))return 0;
if(preceedp(d1, d2))return 1;
return -1;
}

678:homoじょあ ◆5OLf4yFnuM
07/12/18 22:27:24
>>673
void printBinary(char x){
int i;
for(i=8; i>0; i--){
(128 & x) ? putchar('1') : putchar('0');
x = x << 1;
}
putchar('\n');
}

(・3・)1の補数なら引数に「~ch」を渡せばいいお
    2の補数なら引数に「~ch+1」を渡せばいいお

679:homoじょあ ◆5OLf4yFnuM
07/12/18 22:33:53
>>673
(・3・) エェー 時間ないから②はダメぽ

int shou8(unsigned x){
return x - (x >> 3) * 8;
}

680:homoじょあ ◆5OLf4yFnuM
07/12/18 22:34:32
(・3・) エェー 全くビット演算の意味ないよNE

681:homoじょあ ◆5OLf4yFnuM
07/12/18 22:40:35
>>673
(・3・) エェー さすがに酷いから作り直した
          今週の営業は終了致しましたYO
int shou8(unsigned x){
int i, j=1, sum=0;
for (i=0; i<3; i++) {
if( j & x ){
sum += j;
}
j *= 2;
}
return(sum);
}

682:デフォルトの名無しさん
07/12/21 14:57:21
tanθの値を-360<=θ<=360の範囲で1°刻みにプログラムを作成すること。
ただし、tanは、自分で作った関数の中でのみ使用でき、θの値は
mainの中で決定し、関数へと受け渡すこと。
プログラムの中身
-360,○○○
-359,○○○
   ・
   ・
   ・
360, ○○○

このプログラムをお願いします。

683:デフォルトの名無しさん
07/12/21 21:54:20
#include <stdio.h>
#include <math.h>

//円周率(double型の有効桁数までのつもり)
#define PAI (3.141592651389793)

double mytan(double dig)
{
if(fmod(dig+90,180)==0)//ex. 90,270...
{
//求められない
return HUGE_VAL;
}
return tan(dig*PAI/180);
}

int main(void)
{
int dig;
double val;
for(dig=-360;dig<=360;dig++)
{
val=mytan(dig);
printf("%+3d ",dig);
if(val==HUGE_VAL)
printf("エラー");
else
printf("%lf",val);
printf("\n");
}
return 0;
}

684:デフォルトの名無しさん
07/12/21 22:36:47
穴でも掘るのか?

685:デフォルトの名無しさん
07/12/22 00:53:15
中学1年のころの英語の授業の記憶より
"カナダは大きい国です。"を英訳
(正)Canada is a big country.
(誤)Canada is a dig country.

686:デフォルトの名無しさん
07/12/25 13:58:30
[1] 授業単元:C
[2] 問題文(含コード&リンク):A:0からある数値(NUM) までの合計を表示するプログラムを,以下の手順で作りなさい.B:課題A で作成したプログラムを修正して,NUM の値を変化させるプログラムを作成する
[3] 環境
 [3.1] OS: (Windows 
[3.2] コンパイラ名とバージョン: 任意
 [3.3] 言語: C
[4] 期限: ([2008年1月9日まで] [5] その他の制限:

687:デフォルトの名無しさん
07/12/25 14:01:07
問A
ヘッダファイル kadai09a.h を作成し,NUM と関数hyoujiを定義する.
-------------------------------------------------------------
#define NUM 5
extern void hyouji(int, int);
-------------------------------------------------------------
以下のプログラムをもとに,
main関数の部分をソースファイル kadai09a.c に,関数 hyouji の部分をソースファイル kadai09a1.c に分割する.
-------------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>
void hyouji(int, int);
int main(void)
{
int i, n;
int sum = 0;
printf("Input non-negative integer: ");
scanf("%d", &n);
for (i = 1; i <= n; i++) {
sum += i;}
hyouji(n, sum);
return 0;
}
void hyouji(int k, int m)
{
printf("The sum of 0 to %d : %d\n", k, m);
}
-------------------------------------------------------------
作成した kadai09a.c, kadai09a1.c, kadai09a.h をコンパイルして実行する.

688:デフォルトの名無しさん
07/12/25 14:03:04
ヘッダファイル kadai09b.h を作成し,NUM と関数hyouji と関数sum を定義する.
ただし,NUM は,「マクロNUM が定義されていなければ,NUM=5 」と定義する.
-------------------------------------------------------------
#define NUM 5
extern void hyouji(int, int);
extern int sum(void);
-------------------------------------------------------------
main関数の部分を,ソースファイル kadai09b.c で定義する.
-------------------------------------------------------------
#include <stdio.h> /* おまじない */
#include <stdlib.h> /* おまじない */
int sum(void);
void hyouji(int, int);
int main(void)
{
hyouji(NUM, sum());
return 0;
}
-------------------------------------------------------------
関数sum を,ソースファイル kadai09b1.c で定義する.
-------------------------------------------------------------

#include <stdio.h>
#include <stdlib.h>
int sum(void) {
int i, souwa=0;
for (i = 1; i <= NUM; i++) {
souwa += i;}
}
-------------------------------------------------------------
ここで示したサンプルプログラムでは動かないので,必要最小限の修正をしてプログラムを完成すること

689:デフォルトの名無しさん
07/12/25 15:12:43
【質問テンプレ】
[1] 授業単元:Cプログラミング実習
[2] 問題文(含コード&リンク): VC 6.0の環境で電卓の作成。
(1).加算を行う電卓の作成。(後に四則演算に対応させる)
(2).エディットボックスに数値を入力し演算を行う。
(3).エディットボックスにプラス「+」、マイナス「-」、
スペース「' '」を入力されても演算可能にする。

(補足)
C言語の初心者です。
今、VC 6.0の環境で電卓を作っています。
エディットボックスに数値を入力して計算させるプログラムなのですが
エディットボックスにスペースを入力されても計算出来るようにしたいのですが解りません。
NULL文字をチェックすればよいのか、それとも「isspece」の関数を使って空白文字を
調べればよいか解りません。プラス「+」、マイナス「-」の符合が入力されても
計算出来るようには行えたのですが、どうしても空白(スペース)を入力された場合が、
うまくいきません。以下は作成途中のソースコードです。ここに付け加えるような
コードで教えていただけると助かります。ご指導お願いします。

[3] 環境
 [3.1] OS: Windows XP
 [3.2] コンパイラ名とバージョン:VC 6.0
 [3.3] 言語: C,C++
[4] 期限: 2007年12月25日
[5] その他の制限:クラス使用不可

690:デフォルトの名無しさん
07/12/25 15:14:49
>> 689の作成中のコードです。宜しくお願いします。

// OnButton1() /////////////////////////////////////////////////////////////////////
void CKasanDlg::OnButton1()
{
adding();

char num1[128],num3[128];
int i,length=strlen(&num1[0]);
int numk,numl=0;

m_num3.GetLine( 0, num3 );
numk = sscanf( num3, "%d", &numl );

for( i=0; i<length; i++ ){
isdigit( (int) num1[i] );
}

if(( numk == -1 )){
MessageBox("数値を入力してください。"); // メッセージボックス
}
}


691:デフォルトの名無しさん
07/12/25 19:57:46
>>687
//kadai09a.h
#define NUM 5
void hyouji(int,int);
//kadai09.c
#include "kadai09a.h"
#include <stdio.h>
//#include <stdlib.h>//いらなくね?
int main(void)
{
//mainの内容を記述します。
}
//kadai09a1.c
#include <stdio.h>
void hyouji(int k,int m)
{
printf("The sum of 0 to %d : %d\n", k, m);
}

コンパイラの使い方は誰かに聞け

692:691
07/12/25 20:02:06
すまん。問題よく読んでなかった。
kadai09a.cだけ変えてくれ。

#include "kadai09.c"
int main(void)
{
int i,;
int sum = 0;
for (i = 1; i <= NUM; i++)sum += i;
hyouji(n, sum);
return 0;
}

693:デフォルトの名無しさん
07/12/25 20:09:00
>>688
//kadai09b.h
#ifndef NUM
#define NUM (5)
#endif
void hyouji(int,int);
int sum(void);
//kadai09b.c
#include "kadai09b.h"
int main(void)
{
hyouji(NUM,sum());
return 0;
}
//kadai09b1.c
//NUMを変えるのならここで定義すること
//#define NUM (100)
#include "kadai09b.h"
int sum(void)
{
int souwa=0;
for (i = 1; i <= NUM; i++)souwa+=i;
return souwa
}

694:デフォルトの名無しさん
07/12/26 02:14:56
別スレで答えてもらえなかったので、ここで頼みたいのですが・・
C++
Linux

#include <stdio.h>
#include <math.h>
int x,y;
{
mi(x,y,a);
}

mi(x,y,a)
int x,y;
float a;
{
}
return
}

ルーチンワーク内で、mi(x,y,a)という、
(x,y)にa倍の「み」という文字を表示するコマンドをつくりたいのですが
どうやってつくればよいでしょうか?
1倍の「み」は横幅縦幅ともに50くらいとしておねがいします。
できればforなどの基礎構文で

695:デフォルトの名無しさん
07/12/26 07:33:29
>>694
情報量が少な過ぎ。用件をきっちり書くか、ちゃんとしたサンプルを提示してくれ。

696:デフォルトの名無しさん
07/12/26 12:58:48
>>695
宿題で、「み」という文字をウインドウにアニメーション的に表示する
プログラムをつくる(これしか言われてないです・・)というのがでたので、
mi(x,y,a)というコマンドを用意したいのですが、どうすればいいかわからなくて。
最近やっと、for文をつかったアニメーションのつくりかたを習ったばかりという
レベルです。

697:デフォルトの名無しさん
07/12/26 13:06:49
for文をつかったアニメーションのつくりかたって何だ

698:デフォルトの名無しさん
07/12/26 14:38:31
>>697
えと、
for(i=0;i<=100;i++)
{
x=10*i,y=100-10*i
ginit();
mi(x,y);
draw();getchar();
}
という感じなのですが、一般的じゃないんですか?

699:デフォルトの名無しさん
07/12/26 18:57:00
必要そうな関数を使い方なども含めて全部説明してくれ。
この質問はMS-DOSユーザに対して、Windowsのプログラム作ってくれってなぐらいに厳しいぞ。

700:デフォルトの名無しさん
07/12/27 03:59:41
静止画からの(複数)顔検出率95%以上のプログラムをください(><)

701:デフォルトの名無しさん
07/12/27 05:01:48
>>699
ginit()    window画面を出す
line(x1,y1,x2,y2)   (x1,y1)と(x2y2)を結ぶ線分を描く
circle(x,y,r) (x,y)を中心とする半径rの円を書く
くらいしか使えないのですが、これで「み」をかけますかね?

702:デフォルトの名無しさん
07/12/27 10:55:16
lineでベクトル的に書く

703:デフォルトの名無しさん
07/12/27 17:10:06
取り敢えずこんなもんかな。
--
static int conv(int xy, int a, int oxy, int dxy) {return xy + (oxy + dxy) * a;}
void mi(int x, int y, int a)
{
const int ox = 0;
const int oy = -50;
static const struct point {
int x;
int y;
} points[] = {
{10, 0}, {20, 0}, {10, 50}, {0, 40}, {10, 30}, {50, 30},
{-1, -1}, {40, 20}, {40, 50}, {-1, -1},
};
for (int ic = 0; ic < sizeof(points) / sizeof(* points); ++ic) {
if (points[ic].x >= 0 && points[ic + 1].x >= 0) {
line(conv(x, a, ox, points[ic].x), conv(y, a, oy, points[ic].y),
conv(x, a, ox, points[ic + 1].x), conv(y, a, oy, points[ic + 1].y));
}
}
}

int main()
{
mi(100, 100, 2);
return 0;
}

704:デフォルトの名無しさん
08/01/02 15:09:08
ぼるじょあさんあけおめ

705:ぼるじょあ ◆yBEncckFOU
08/01/02 15:24:56
(・3・) 新年明けましておめでとうございます
     本年もご愛顧の程よろしくお願いしますYO!

706:デフォルトの名無しさん
08/01/07 15:46:41
[1] 授業単元:C
[2] 問題文 URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS: Windows 
[3.2] コンパイラ名とバージョン: 任意
 [3.3] 言語: C
[4] 期限: 2007年1月8日16:00まで
[5] その他の制限: 特になし


707:デフォルトの名無しさん
08/01/07 15:51:04



708:デフォルトの名無しさん
08/01/07 15:52:47
>>706続き
URLリンク(kansai2channeler.hp.infoseek.co.jp)
問題2つあって長文ですが回答お願いします

709:homoじょあ ◆5OLf4yFnuM
08/01/07 19:39:04
(・3・) エェー あけましておめでとうございまSU
          本年もよろしくお願い致しますYO


>>706
(・3・) エェー 新年1発目だYO
URLリンク(kansai2channeler.hp.infoseek.co.jp)

710:デフォルトの名無しさん
08/01/09 02:41:39
>>156
自己満足な上にc++だけど。

URLリンク(blog38.fc2.com)

711:名無し
08/01/09 21:24:21
[1] 授業単元: プログラム
[2] 問題文:複数の整数の平均・分散を求めるプログラムを作成せよ。ただし、平均・分散ともに
小数点第3位以下を切り捨て、小数第2位まで求めるものとする
 入力に関して
キーボードからまず、入力する整数の個数を入力し(最大でも100とする)改行する
次に指定した数の整数をスペース1つずつ開けて1行で入力するものとする
この時、入力を促す文字等は表示しないこと
 出力に関して
1行目に平均(+改行)、2行目に分散(+改行)を数値のみ出力する。
指定した数値・改行以外の文字等の出力は一切行わない事
[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ名とバージョン:わかりません
 [3.3] 言語: C
[4] 期限: 2008年1月10日10:00まで
[5] その他の制限: 特になし
よろしくおねがいします


712:名無し
08/01/09 22:05:32
[1] 授業単元: プログラム
[2] 問題文:複数の数値に対する最大公約数を求める関数を作成し、それを利用するプログラムを作成せよ
関数は下記の通り
int gcm(int*in,int num)
in  入力値が格納された配列のポインタ
num  入力値の数
戻り値 入力値の最大公約数

入力に関して、キーボードから、入力値をスペース1つ開けて1行で入力する
この時、入力を促す文字等は表示しないこと

出力に関して、結果+改行のみ出力。指定した数値・改行以外の文字等出力は行わない
[3] 環境
 [1] OS:XP
 [2] コンパイラ名とバージョン:わかりません
 [3] 言語: C
[4] 期限: 2008年1月10日10:00まで
[5] その他の制限: 特になし
またまたおねがいします。


713:デフォルトの名無しさん
08/01/09 22:30:25
>>711
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

double Average(int count,int data[])
{
double sum=0;int i;
for(i=0;i<count;i++)sum+=data[i];
return sum/count;
}

double StandardDeviation(int count,int data[])
{
double av,variance;
int i;
variance=0;
av=Average(count,data);
for(i=0;i<count;i++)variance+=((data[i]-av)*(data[i]-av));
variance/=count;
return sqrt(variance);
}


714:デフォルトの名無しさん
08/01/09 22:31:13
int main(void)
{
char buf[1024],*szStrPtr;
int i,count,data[100];
gets(buf);
count=atoi(buf);
if(count>100){printf("最大で100までゆうただろうが!\n");return 1;}
szStrPtr=buf;
gets(buf);
for(i=0;i<count;i++)
{
char *endptr;
data[i]=strtol(szStrPtr,&endptr,10);
if((*endptr)=='\0' && i!=(count-1)){printf("きちんと入力できてないでー\n");return 1;}
szStrPtr=endptr+1;
}
printf("%.2f\n%.2f\n",floor(Average(count,data)*100)/100,floor(StandardDeviation(count,data)*100)/100);
return 0;
}

715:ぼるじょあ ◆yBEncckFOU
08/01/09 22:37:37
>>711
(・3・) エェー やっとでけたYO!
#include<stdio.h>
#include<math.h>

int main(void)
{
int i, value_num, value;
double total=0.0, total_2=0.0, ave, dev;

scanf("%d", &value_num);
if(value_num<=0) return 1;

for(i=0;i<value_num;i++)
{
scanf("%d", &value);
total+=value;
total_2+=value*value;
}
ave=total/value_num;
dev=(total_2-total*ave)/value_num;
printf("%.2f\n", floor(ave*100)/100);
printf("%.2f\n", floor(dev*100)/100);

return 0;
}

716:名無し
08/01/09 22:37:52
>713、714さん
ありがとうございます。助かりました。

717:名無し
08/01/09 22:44:39
>715さん
ありがとうございます

718:ぼるじょあ ◆yBEncckFOU
08/01/09 23:06:48
>>712
#include<stdio.h>
#include<stdlib.h>

int gcd(int *in, int num){
int a, b, c, i;

if(num<=0) return -1;
b=in[0];
for(i=1;i<num;i++){
a=in[i];
if(b<=0) return -1;
while((c=a%b)) a=b,b=c;
}
return b;
}

int main(void){
int *data=NULL, datanum=0;
char buf[20+1];

for(;;){
fscanf(stdin, "%*[ ]");
if(fscanf(stdin, "%1[\n]", buf)==1) break;
if(fscanf(stdin, "%20[0-9]", buf)!=1) return 1;
data=realloc(data, sizeof(*data)*(datanum+1));
data[datanum++]=atoi(buf);
}
printf("%d\n", gcd(data, datanum));
free(data);
return 0;
}

719:デフォルトの名無しさん
08/01/10 22:33:56
[1] 授業単元: プログラミング入門
[2] 問題文: URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS:UNIX
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C言語
[4] 期限:明日まで
[5] その他の制限:特になし
よろしくお願いします。


720:デフォルトの名無しさん
08/01/10 23:09:50
>>719
ソートが気に食わなかったら書き換えて
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>

int main(int argc,char *argv[])
{
char buf[1024];char *ptr;
if(argc<=1){puts("コマンドライン例\n% printchar u\n% printchar l\n% printchar r\n% printchar s");return 0;}
gets(buf);
switch(tolower(*(argv[1])))
{
case 'u':
for(ptr=buf;*ptr;ptr++)*ptr=toupper(*ptr);
break;
case 'l':
for(ptr=buf;*ptr;ptr++)*ptr=tolower(*ptr);
break;
case 'r':
for(ptr=buf;*ptr;ptr++)*ptr=(islower(*ptr)?toupper(*ptr):tolower(*ptr));
break;
case 's':
qsort(buf,strlen(buf),1,(int(*)(const void *,const void *))strcmp);
break;
default:puts("コマンドライン例\n% printchar u\n% printchar l\n% printchar r\n% printchar s");return 0;
}
puts(buf);
return 0;
}

721:デフォルトの名無しさん
08/01/12 14:08:37
ごみじょあ

722:デフォルトの名無しさん
08/01/12 15:28:07
[1] 授業単元:C言語
[2] 問題文:構造体としてT1時T1分T1秒とT2時T2分T2秒をキーボードから入力し、
経過時間を求め、表示するプログラムを作成しなさい。但し、秒は実数型とする
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:fujitsu workbench
 [3.3] 言語:C
[4] 期限:1月16日16:00
[5] その他の制限:T1=7時25分12.33秒 T2=12時3分27.55秒.時間は24時間60分60秒で
それ以上はNGで安全装置を働かせる


723:デフォルトの名無しさん
08/01/12 16:05:17
マルチすんなボケ

724:デフォルトの名無しさん
08/01/17 21:49:34
[1] 授業単元:CプログラミングⅠ
[2] 問題文(含コード&リンク): URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:分かりません
 [3.3] 言語:C++
[4] 期限:1月18日 00:00
[5] その他の制限:特にありません.
よろしくお願いいたします.

725:デフォルトの名無しさん
08/01/17 22:52:44
くそじょあ

726:デフォルトの名無しさん
08/01/17 23:16:12
>>724
こんなあんばいでどう?
テストしてないけど。

//穴1
typedef struct _Animal
{
int id;
char name[23];
int show[5];
int show_sum;
int show_prev;
int show_disp_total;
}Animal;

//穴2
for(i=0;i<n;i++)
{
s[i].show_sum=0;
for(j=0;j<5;j++)s[i].show_sum+=s[i].show[j];
s[i].show_disp_total=s[i].show_sum+s[i].show_prev;
tmp_total+=s[i].show_disp_total;
}

727:デフォルトの名無しさん
08/01/17 23:38:51
>>726
おかげさまでエラーもなく実行することができました!
本当に感謝します,ありがとうございました!

728:デフォルトの名無しさん
08/01/18 22:05:06
[1] 授業単元:CプログラミングⅠ
[2] 問題文(含コード&リンク): URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:分かりません
 [3.3] 言語:C++
[4] 期限:2008年1月19日 09:00
[5] その他の制限:特にありません
よろしくお願いします!


729:デフォルトの名無しさん
08/01/18 23:07:26
マルチばっかりじゃないか・・・

730:デフォルトの名無しさん
08/01/19 04:31:01
>>728
URLリンク(kansai2channeler.hp.infoseek.co.jp)

731:デフォルトの名無しさん
08/01/19 08:09:40
>>730
ありがとうございました!

732:デフォルトの名無しさん
08/01/20 14:08:43
学校の課題でC++のクラスについての問題が出たのですが、まず以下のような
データファイルを用意した上で、そこからデータを読み出して、別ファイルに
標準体重の人の血液型と名前を出力するというものなんです。ファイルの読み出しまでは分かるのです
がその後が分かりません。アドバイスお願いします。

*標準体重・・・指数k(平均体重÷(平均身長ー100)を設定し、各々(身長ー100)*kの理想体重に対して97~103%の間に入っていること。


<データファイル>
一行目   人数
二行目以降 名前 血液型 身長 体重



733:デフォルトの名無しさん
08/01/20 16:46:50
テンプレ嫁

734:デフォルトの名無しさん
08/01/20 23:00:29
1] 授業単元: プログラミング
[2] 問題文: URLリンク(sasa.cis.ibaraki.ac.jp) の必須課題1と2
[3] 環境
 [3.1] OS:UNIX
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C言語
[4] 期限:2008/01/21まで
[5] その他の制限 二重ポインタを使わないで
         非再帰でお願いします

735:デフォルトの名無しさん
08/01/20 23:14:23
>>734
PDFはやめて。

736:デフォルトの名無しさん
08/01/21 00:43:00
Cプログラマ必須テキスト!

URLリンク(mori.eco.to)

737:デフォルトの名無しさん
08/01/21 01:26:20
 何度目だ?Cプログラマ必須テキスト!

738:デフォルトの名無しさん
08/01/21 16:00:55
v

問7
キーボードから実数を一つ入力
させ、それを x に代入する。

x ≦ 100 のとき「A」、
100 < x ≦ 350 のとき「B」、
350 < x ≦ 600 のとき「C」、
600 < x     のとき「D」

と表示するプログラム
@
わかんないです。
C言語プログラミング
、C-pad?? lcpad使ってます。


739:デフォルトの名無しさん
08/01/21 16:05:03
[1] C言語
[3] [3.1] OS: Windows XP
  [3.2] コンパイラ名とバージョン: わかりません
  [3.3] 言語: C言語
[4] 期限: 1月24日木曜日
[2] 問題文(含コード&リンク):
問2
4個の変数
  a 整数
  b 実数
  c 精度の高い実数
  d 文字
を宣言し、それぞれに適当なデータを代入する。
そして次のように画面表示するプログラム
a の値は ... です
b の値は ... です
c の値は ... です
d の値は ... です

問3
37から229までの整数を加算しその結果を表示するプログラム

お願いします!!

740:デフォルトの名無しさん
08/01/21 16:06:14
続きです。
問4
x = 0 から出発し、x の値を0.001 づつ増加させることを繰り返し、 
x^2 + 7x - 1 の値が初めて正となった時点で繰り返しを終了し、
そのときのx の値を表示するプログラム

問5
キーボードから整数を入力させその数を x に代入する。
x が 100 より大きいとき、
「入力した数は 100 より大きい」と表示し、x が 100 以下のとき、
「入力した数は 100 以下です」と表示するプログラム

問6
キーボードからアルファベット
を1文字入力させ、それが
「a」のとき、「a です」
「b」のとき、「b です」
「c」のとき、「c です」
「d」のとき、「d です」
「e」のとき、「e です」
と表示し、それ以外のとき「a,b,c,d,e 以外の文字」と表示するプログラム



次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch