Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

競技プログラミングを始めて苦戦したこと

More than 1 year has passed since last update.

この記事はN高等学校 Advent Calendar 2018 24日目の記事です。

この記事がどういうものかというと,私がプログラミング経験2ヶ月ぐらいで競技プログラミングを始めた時に困ったことをまとめた記事です。競技プログラミングをやってみたいけど,プログラミング全然やったことない人や,初めてみたけどよくわからないことがあるという人の役に立てば,と思います。

はじめに

私はN高等学校に今年4月入学した1年生です。入学するまでのプログラミング経験は,少しイベントなどでやったことはありますがほぼゼロです。入学してからはN予備校のプログラミング入門 Webアプリコースの2章の途中ぐらいまでの内容を学習しました。そしてもともと情報オリンピック(JOI)に出てみたいと思っていたので,それに出れるように頑張ってみようと思い競技プログラミングを始めました。

実際に始めてみて

実際に始めてみるといくつか困ったことがありました。ひとつめは言語の仕様がわからないということで,ふたつめはエラーが出た時にどうすればいいのかわからないということです。

言語がわからない

この時私が勉強したことがある言語がN予備校でやったJavascriptだけで始めはJavascriptでやっていたのですが,JOIで使える言語はC言語,C++だけだったのと,JavascriptもあまりよくわからなかったのでC言語かC++を勉強しようと思いました。そして

の3つを学習してこの問題は解決しました。

エラーの問題

エラーが出た時は私は英語わからないきょうのでとりあえず,Google翻訳でエラー出力を翻訳して,わからなければひとつずつエラーを検索をかけて解決してきました。ですが,翻訳したり,検索をかけてるのは結構時間がかかるのでよく出るのをまとめておきたいと思います(実行環境はUbuntu 16.04.4,g++ 5.4.0です)

fatal error: studio.h: No such file or directory
compilation terminated.

これは,"studio.h"というファイルまたはディレクトリはないというエラーです。私も初めのうちはスタジオだと思っていたのですが,standard I/O (標準入出力)の省略らしいので"stdio.h"になるらしい

error: ‘variable’ was not declared in this scope

これはerrorの後にある変数(この例だとvariable)はこのスコープでは定義されていないというエラーです。文字列使おうとした時や,スペルミス,定義したつもりだったがしていなかったなどの時によくあると思います。

error: expected ‘;’ before ‘return’

これはセミコロンを書き忘れた時に出ます。この例だとreturnの前にセミコロンがいるのに書き忘れています。expectedという単語が期待されたなどの意味の単語らしいので,この単語がエラーで出てきたら何か書き忘れてると思ってもいいかもしれません。

私が思いついたのはこれぐらいだったのですが結構まだあると思うのでその時は,検索をかけてみてください。何かしらの情報が見つかると思います。

最後に

競技プログラミングの大会に出れるならばできるだけ出た方がいいと思います。まず楽しいですし,色々な発見があったりするので,自分の成長にも繋がると思います。最後まで読んでいただきありがとうございました。

nnn-school
IT×グローバル社会を生き抜く“創造力”を身につけ、世界で活躍する人材を育成する。
https://nnn.ed.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away