PRINTの疑問や悩み - 億女Q&A

Yahoo!知恵袋疑問や悩みを検索

知恵袋Q&Aで悩みを解決!

-PR-
  • コンピュータテクノロジー > OS > Linux系
  • Thu, 18 Jul 2019
  • 質問No. 486714

解決
済み
Q PRINTの疑問や質問

  • 閲覧数10
  • 質問総数501

APRINTのQ&A回答一覧

    Yahoo!知恵袋

    • 投稿日時 - Thu, 18 Jul 2019 03:28:39
    • 質問No.486714
    コンピュータテクノロジー > OS > Linux系

    Perlのロック制御について

    下記のスクリプトで、seek(FD, 0, 0)をコメント(#)せず
    10000回実行すると、出力結果は、10000となります。 一方、seek(FD, 0, 0)をコメント(#)してスクリプトを実行しますと
    以下の結果となります。
    なぜ、この処理結果になるかがよくわからないのですが、教えていただけないでしょうか。

    <seekをコメントした場合の結果>
    # more test.txt
    1
    2


    <スクリプト>
    #!/usr/local/bin/perl

    $file = "test.txt";

    open(FD, "+< $file");
    flock(FD, 2);
    $count = <FD>;
    $count++;
    #see...
    回答
    アンサー

    $count<FD>;の行で、1行読んでいるので、ファイル位置指示子がファイルの1行目の後に来ています。そのまま、print FD "$countn";とすると2行目に$countの値が追加されます。
    seek(FD, 0, 0);を呼ぶと、ファイル位置指示子がファイルの先頭に移動し、次のprint FD...では、ファイルの先頭から上書きをします。
    閲覧数 10
    詳しくはこちら
    • 同意数3(6-3)
    • 回答数1
    • 投稿日時 - Thu, 18 Jul 2019 01:59:00
    • 質問No.486356
    コンピュータテクノロジー > OS > Linux系

    Perlのsortの内部処理について

    下記のスクリプトを実行した場合、実行結果は、「2 3 5 11」となると思います。 sortの内部処理について、a==bなら0、a<bなら-1、a>bなら1 の基準に沿って
    並び替えを行っているかと思います。
    この基準で、なぜ、「5 11 3 2」が「2 3 5 11」になるかがわからないのですが
    教えていただけないでしょうか。


    <スクリプト>
    #!/usr/local/bin/perl

    my @nums = (5, 11, 3, 2);
    @nums = sort {$a <=> $b} @nums;

    print "@numsn";
    回答
    アンサー

    まあ、「もともとソートいうものはそういうもの」だからです。
    結局、「大小比較する方法」を与えて sort をするのです。
    この場合だと、
    $a <=> $b は、内部的には

    sub compare{
    my ($a, $b) = @_;
    if($a == $b) return 0;
    elsif($a < $b) return -1;
    else return 1;
    }

    ですね。

    一方sort では、
    if(compare($a,$b)==1) { $a と $b の交換}
    なんて感じで書いてあって、全部の要素で比較と入れ替えをするのです。

    これで、めでたく並ぶ順番が小さい順になります。
    閲覧数 18
    詳しくはこちら
    • 同意数7(13-6)
    • 回答数1
    • 投稿日時 - Wed, 17 Jul 2019 17:53:34
    • 質問No.480332
    コンピュータテクノロジー > OS > Linux系

    Amazon Echoシリーズのアプリってどうやって作りますか?
    回答
    アンサー

    プログラム未経験の方や、簡単に作ってみたいなら、Blue Printという仕組みがあります。

    ★AmazonEcho:明日は母の日!お礼の言葉をAlexaから伝えてもらおう!!(Alexa Skill Blueprints)
    https://sumasupi.net/2019/05/11/alexa-say-thanks-on-mothers-day/

    ある程度プログラム経験がある方なら、Alexa道場がオススメです。
    以前は2週に1度生放送で講座があったのですが、現在は動画が中心になりました。

    ★AmazonEcho:オンラインセミナーAlexa道場Live「スキル内課金を動かしてみよう」が開催されました!
    https://sumasupi.net/2019/06/20/alexa-dojo-live-report-190619/

    あとは、書店で本を買うか、こちらのサイトからAlexa関連のセミナーを探して行く方法ですね。

    ★エンジニアをつなぐ IT勉強会支援プラットフォーム
    https://connpass.com/
    閲覧数 6
    詳しくはこちら
    • 同意数-7(9-16)
    • 回答数2
    • 投稿日時 - Wed, 17 Jul 2019 14:39:42
    • 質問No.478386
    コンピュータテクノロジー > プログラミング > C言語関連

    0から9999までの最大四桁の正数(ひとつだけ読み込む) 0から9999までの最大四桁の正数(ひとつだけ読み込む) 命題 この正数が8で割りきれるなら下三桁の正数も割りきれる これをコンピューターによって確かめるプログラムを作成してください。
    C言語でお願いします!
    回答
    アンサー

    読み込んだ1つに対しての話とするなら

    #include <stdio.h.>

    int main(void){

    int num;

    printf("0-9999までの数値を入力してください>");
    scanf("%d",&num);//入力は0-9999の値がされるのが前提

    if(num%8!=0){
    printf("%dは8で割り切れる数字ではありませんn",num);
    }else{
    printf("%dは8で割り切れましたn",num);
    if((num%1000)%8==0)
    printf("下3桁%dも8で割り切れましたn",num%1000);
    else
    printf("下3桁%dは8で割り切れませんでしたn",num%1000);
    }

    return 0;

    };
    閲覧数 8
    詳しくはこちら
    • 同意数-2(8-10)
    • 回答数1
    • 投稿日時 - Wed, 17 Jul 2019 10:57:06
    • 質問No.476337
    コンピュータテクノロジー > プログラミング > C言語関連

    c言語についてです。
    2つの文字列st1とst2 をキーボードから入力し、各文字列が一致しているかを判定するプログラムの作り方を教えて下さい。 c言語についてです。
    2つの文字列st1とst2 をキーボードから入力し、各文字列が一致しているかを判定するプログラムの作り方を教えて下さい。 ※各文字列に入力する文字数はそれぞれ終端文字も含めて高々10文字とすること
    回答
    アンサー

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

    #define BUF_SIZE 10

    void main(void)
    {
    char Str1[BUF_SIZE];
    char Str2[BUF_SIZE];

    printf("1個目の文字列 → ");
    scanf("%s", Str1);

    printf("2個目の文字列 → ");
    scanf("%s", Str2);

    if(strcmp(Str1, Str2) == 0) {
    printf("同じn");
    }
    else {
    printf("違うn");
    }
    }
    閲覧数 35
    詳しくはこちら
    • 同意数-10(10-20)
    • 回答数3
    • 投稿日時 - Wed, 17 Jul 2019 08:51:00
    • 質問No.475134
    コンピュータテクノロジー > プログラミング > Visual Basic

    エクセルVbaのユーザーフォーム上のフレームにあるスクロールバーをマウスホイールで移動させる方法を考えています。
    会社で使用しているPC且つ、不特定多数のPCで使用するため、PCへのインス トールや設定による対応は難しく、Vbaでの対応を希望しています。

    コンボボックスをマウスで上下させる、というページを閲覧しましたが、上手くいきませんでした。
    www.excel.studio-kazu.jp/kw/20141022104627.html

    ご対応が分かる方、ご教授宜しくお願いいたします。
    回答
    アンサー

    こんにちは。
    示しているサイトで、出来ましたよ。
    ユーザーフォームのコード
    Option Explicit
    Public M_Over As String

    Private Sub Frame1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    M_Over = "CB1"

    End Sub

    Private Sub UserForm_Initialize()
    Call MouseEventHook.Start
    End Sub
    Private Sub UserForm_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    M_Over = ""
    End Sub
    Private Sub UserForm_Terminate()
    MouseEventHook.Terminate
    End Sub
    クラスのコード、オブジェクト名は「MouseEventHook」
    Option Explicit

    Private Declare Function SetWindowsHookEx Lib _
    "User32.dll" Alias "SetWindowsHookExA" _
    (ByVal idHook As Long, ByVal lpfn As Long, _
    ByVal hMod As Long, ByVal dwThreadId As Long) As Long
    Private Const WH_MOUSE_LL As Long = 14



    Private Declare Function UnhookWindowsHookEx Lib _
    "User32.dll" (ByVal hhk As Long) As Long



    Private Declare Function CallNextHookEx Lib _
    "User32.dll" (ByVal hhk As Long, ByVal nCode As Long, _
    ByVal wParam As Long, ByVal lParam As Long) As Long



    Private Declare Function GetWindowLong Lib _
    "User32.dll" Alias "GetWindowLongA" _
    (ByVal hWnd As Long, ByVal nIndex As Long) As Long
    Private Const GWL_HINSTANCE As Long = -6



    Private Declare Sub CopyMemory Lib _
    "kernel32" Alias "RtlMoveMemory" _
    (Destination As Any, Source As Any, ByVal Length As Long)





    Private Type Point
    X As Long
    Y As Long
    End Type
    Private Type MouseLLHookStruct
    Point As Point
    mouseData As Long
    flags As Long
    time As Long
    dwExtraInfo As Long
    End Type



    Private pv_IsRunning As Boolean
    Private pv_WindowHandle As Long
    Private pv_MouseHookHandle As Long





    Public Sub Start()
    If pv_IsRunning = False Then
    pv_WindowHandle = Application.hWnd
    pv_MouseHookHandle = SetWindowsHookEx(WH_MOUSE_LL, _
    AddressOf MouseEventHookHandler, _
    GetWindowLong(pv_WindowHandle, GWL_HINSTANCE), 0)
    If pv_MouseHookHandle = 0 Then
    Debug.Print ("マウスメッセージフックのインストールが失敗しました。")
    Else
    Debug.Print ("マウスメッセージフックのインストールが成功しました。")
    pv_IsRunning = True
    End If
    End If
    End Sub



    Public Function MouseLLHookProc(ByVal nCode As Long, _
    ByVal wParam As Long, ByVal lParam As Long) As Long
    Dim m_Return As Long
    Dim m_MouseLLHookStruct As MouseLLHookStruct

    Dim v1

    On Error GoTo ErrorHandler
    Select Case wParam
    ' Case 512 '[MouseMove]
    ' CopyMemory m_MouseLLHookStruct.Point.X, ByVal lParam, LenB(m_MouseLLHookStruct)
    ' With m_MouseLLHookStruct
    ' Debug.Print "MouseMove(x=" & .Point.X & ",y=" & .Point.Y & ")"
    ' End With
    ' Case 513: Debug.Print "LeftDown"
    ' Case 514: Debug.Print "LeftUp"
    ' Case 516: Debug.Print "RightDown"
    ' Case 517: Debug.Print "RightUp"
    ' Case 519: Debug.Print "MidDown"
    ' Case 520: Debug.Print "MidUp"
    Case 522: '[MouseWheel]
    CopyMemory m_MouseLLHookStruct.Point.X, ByVal lParam, LenB(m_MouseLLHookStruct)
    With m_MouseLLHookStruct
    Select Case .mouseData

    Case Is > 0
    v1 = UserForm1.Frame1.ScrollTop
    If v1 < 0 Then
    Else
    v1 = v1 - 50
    If v1 < 0 Then
    v1 = 0
    End If
    UserForm1.Frame1.ScrollTop = v1
    End If
    ' SendKeys "{UP}", True
    Case Is < 0
    ': SendKeys "{DOWN}", True

    v1 = UserForm1.Frame1.ScrollTop
    v1 = v1 + 50
    UserForm1.Frame1.ScrollTop = v1


    End Select
    Debug.Print "MouseWheel(" & .mouseData & ")"
    End With
    End Select


    ErrorHandler:



    m_Return = CallNextHookEx(pv_MouseHookHandle, nCode, wParam, lParam)



    MouseLLHookProc = m_Return
    End Function



    Public Sub Terminate()
    If pv_IsRunning Then
    Call UnhookWindowsHookEx(pv_MouseHookHandle)
    Debug.Print ("マウスメッセージフックのアンインストールが完了しました。")
    pv_IsRunning = False
    End If
    End Sub

    標準モジュールのコード
    Option Explicit
    Public MouseEventHook As New MouseEventHook

    Public Function MouseEventHookHandler(ByVal uMsg As Long, _
    ByVal wParam As Long, ByVal lParam As Long) As Long
    On Error GoTo ErrorHandler
    If UserForm1.M_Over = "CB1" Then
    Call MouseEventHook.MouseLLHookProc(uMsg, wParam, lParam)
    End If
    ErrorHandler:

    End Function

    です。
    記事では、sendkeyを使っていますが、freamコントロールに変更したから、scrolltopプロパティが使えるので、sendkeysは、使わなくて出来ましたよ。
    閲覧数 11
    詳しくはこちら
    • 同意数14(18-4)
    • 回答数1
    • 投稿日時 - Wed, 17 Jul 2019 07:27:46
    • 質問No.474292
    コンピュータテクノロジー > プログラミング > C言語関連

    ユーザに4桁の数字を入力させ、その数字と配列を引数にとり、数字を一桁ずつ分解してそれぞれ配列に格納する関数を作成せよ。 <実行結果例>
    入力数字=1234
    1番目の要素=1
    2番目の要素=2
    3番目の要素=3
    4番目の要素=4
    このようにしたいのですが逆になってしまいます
    どう修正すればいいですか??

    私が作ったプログラム
    #include <stdio.h>

    void a(double a,double *no)
    {
    a[0]=*no/10;
    a[1]=*no/10%10;
    a[2]=*no/10/10%10;
    a[3]=*no/10/10/10%10;
    }
    int main(void)
    {
    int i;
    double b[4],no;
    printf(...
    回答
    アンサー

    入力値が「4桁の数字」なのだから関数を作る意義とか全く無いような。


    #include <stdio.h>

    int main(void)
    {
    __char s[5] = { 0 };
    __char *p;

    __printf("入力数字=");
    __scanf("%4[0123456789]", s);

    __for (p = s; *p; p++){
    ____printf("%u番目の要素=%cn", p - s + 1, *p);
    __}

    __return 0;
    }
    閲覧数 18
    詳しくはこちら
    • 同意数13(20-7)
    • 回答数2
    • 投稿日時 - Wed, 17 Jul 2019 07:15:29
    • 質問No.474168
    スマートデバイス、PC、家電 > パソコン > プリンター

    CANONレーザープリンターのLBP622C(A4カラーで両面対応)の一つ前の世代機種は何ですか?
    回答
    アンサー

    価格コムで検索してみた
    https://kakaku.com/pc/printer/itemlist.aspx?pdf_ma=14&pdf_subse=1949&pdf_Spec101=2&pdf_so=e2&pdf_ob=0
    登録日からみてSatera LBP612Cかな
    閲覧数 3
    詳しくはこちら
    • 同意数5(8-3)
    • 回答数1
    • 投稿日時 - Wed, 17 Jul 2019 02:53:41
    • 質問No.472480
    スマートデバイス、PC、家電 > パソコン > プリンター

    VPN接続で外出先から印刷したいのですが、可能でしょうか?? VPN接続で外出先から印刷したいのですが、可能でしょうか?? (OSはiOS)
    ちなみに家ではAirPrintで印刷出来ています。
    可能であればやり方教えていただきたいです。
    〜接続環境〜
    ルーターwg1800hp(アイオーデータ)
    プリンターMG7730 (キャノン)
    回答
    アンサー

    基本的に可能です。

    VPNルーターかVPNサーバーを用意する必要があります。

    https://qiita.com/TsutomuNakamura/items/1e58fac6ad21c2226ba4
    閲覧数 17
    詳しくはこちら
    • 同意数-6(9-15)
    • 回答数1
    • 投稿日時 - Tue, 16 Jul 2019 23:45:15
    • 質問No.471255
    コンピュータテクノロジー > プログラミング > C言語関連

    c言語で任意の半径を入力してアスタリスク(*)を円形に表示するプログラムを教えてください! c言語で任意の半径を入力してアスタリスク(*)を円形に表示するプログラムを教えてください!
    回答
    アンサー

    適当に作ってみました。
    こんなんでどうですか?

    #include <stdio.h>
    #include <math.h>
    int main(void){
    double r,d2;
    int i,j;
    printf("r=");
    scanf("%lf",&r);
    for(i=0;i<2*r;i++){
    for(j=0;j<2*r;j++){
    d2 = (r-i-0.5)*(r-i-0.5)+(r-j-0.5)*(r-j-0.5);
    if(r*r - d2 > 0.1 && r*r - d2 < 2*r-3.14){
    printf("*");
    }else{
    printf(" ");
    }
    }
    printf("n");
    }
    return 0;
    }
    閲覧数 27
    詳しくはこちら
    • 同意数13(14-1)
    • 回答数1
    -PR-
    -PR-
    1 2 3 4 5 6 7 8 9 10  次へ [51]
    -PR-
    -PR-
    -PR-
    ページ先頭へ