| about | help | code help+videos | done | prefs | 
orion.a.smith@gmail.com apcsa-loops
Description:AP CS A - Looping problems (25-26 Unit 2)
These problems will get you more practice with Java while and for loops. Remember that loops almost all have the important characteristic of a loop control variable, which changes its value as the loop proceeds. In the case of a while loop, that might look like this:
boolean stillWorking = true; // loop control variable
while (stillWorking)
{
  // some other stuff happens here
  if (/* some condition is met */) {
    stillWorking = false;  // something changes to signal the loop should terminate
  }
  // maybe some other stuff happens afterward
}
A for loop in most languages really just packaging up the important components of a while loop. That said, for loops are often used to go through a defined set of numeric values, or numeric indexes. The structure of a for loop makes programmers remember to include important ideas like iteration and updates. Here's an example for loop:
String str = "hello world";
for (int i = 0; i < str.length(); i++)
{
  // some other stuff happens here
}
Looping with numbers and arithmetic
Remember the basic structure of a loop. Either use while loops or for loops, but either way you are going to have a loop control variable and a condition that must be met in order to continue looping. Because these problems are just about number sequences and arithmetic, they can even be completed before you work with Strings or with arrays. apcsaLoopsAddInclusive
apcsaLoopsAddInclusive 
 apcsaLoopsAddExclusive
apcsaLoopsAddExclusive 
 apcsaLoopsAddEveryOtherInclusive
apcsaLoopsAddEveryOtherInclusive 
 apcsaLoopsAddEveryOddInclusive
apcsaLoopsAddEveryOddInclusive 
 apcsaLoopsAddInclusiveEitherWay
apcsaLoopsAddInclusiveEitherWay 
 apcsaLoopsAddMultiplyInclusive
apcsaLoopsAddMultiplyInclusive 
 apcsaLoopsSumFactors
apcsaLoopsSumFactors 
 apcsaLoopsIsPrime
apcsaLoopsIsPrime 
 apcsaLoopsFindPattern
apcsaLoopsFindPattern 
 apcsaLoopsCountPattern
apcsaLoopsCountPattern 
 apcsaLoopsWhichFib
apcsaLoopsWhichFib 
 apcsaLoopsZeroFraction
apcsaLoopsZeroFraction 
 apcsaLoopsCollatzSequence
apcsaLoopsCollatzSequence 
Looping with String concatenation
Strings are a more complex animal than is described here, but one nice feature of Strings is that they can be built by "concatenating," or sequentially adding on, data to create an ever-increasing sequence of characters. Remember to assign your String output to "" when you begin, then use the + operator to add more characters at the end. This sequence of problems allows more flexibility than returning an int, since it tests the order in which your code is operating. Here's an example:
// make "aaaaa" using a for loop
String output = "";
for (int i = 0; i < 5; i++) {
  // could also be written output += "a";
  output = output + "a";
}
 apcsaLoopsConcatInclusiveAscending
apcsaLoopsConcatInclusiveAscending 
 apcsaLoopsConcatWithAllSpaces
apcsaLoopsConcatWithAllSpaces 
 apcsaLoopsConcatInclusiveAscendingWithSpaces
apcsaLoopsConcatInclusiveAscendingWithSpaces 
 apcsaLoopsConcatExclusiveAscending
apcsaLoopsConcatExclusiveAscending 
 apcsaLoopsConcatInclusiveDescending
apcsaLoopsConcatInclusiveDescending 
 apcsaLoopsConcatInclusiveEitherWay
apcsaLoopsConcatInclusiveEitherWay 
 apcsaLoopsConcatInclusiveTwoWays
apcsaLoopsConcatInclusiveTwoWays 
 apcsaLoopsConcatInclusiveEvensAscending
apcsaLoopsConcatInclusiveEvensAscending 
 apcsaLoopsConcatInclusiveNsAscending
apcsaLoopsConcatInclusiveNsAscending 
 apcsaLoopsConcatFactorsOfB
apcsaLoopsConcatFactorsOfB 
These problems challenge you to think about String data as sequences of characters that you look around inside using a loop, much like many of the stock CodingBat String problems.
 apcsaLoopsSameCharacter
apcsaLoopsSameCharacter 
 apcsaLoopsCharacterVariety
apcsaLoopsCharacterVariety 
 apcsaLoopsMaxCharacter
apcsaLoopsMaxCharacter 
 apcsaLoopsMaxIndex
apcsaLoopsMaxIndex 
 apcsaLoopsMaxTwo
apcsaLoopsMaxTwo 
Chatbot problems
The following String problems replicate some of the skills developed by the Magpie lab, one of the stock labs provided for the AP Computer Science A course. No, these problems are not as interesting as a functioning chatbot but they do work on String processing skills.
About Words Many problems in this set will have specialized definitions of what a word is in a String. Sometimes, a very loose definition is used like "anything that isn't a space character is part of a word." Other times, you will see more specific restrictions like "letters count as parts of words, but numbers do not." Pay attention to these definitions when doing the problems. There's a reason for this: in real language processing, it's important to figure out this question especially when you think about characters like apostrophes, periods, commas and exclamation marks. Harder problems, and challenges Some of these problems are more difficult and are marked with "Hard" at the end of the method name. You should try them, but also feel free to move on if you have trouble and come back later. Some of the problems also have challenges listed with them, if you are up for that. The challenges are often significantly harder than the original problems. Indexing problems apcsaChatbotsFindSpace
apcsaChatbotsFindSpace 
 apcsaChatbotsNumSpaces
apcsaChatbotsNumSpaces 
 apcsaChatbotsCountWords
apcsaChatbotsCountWords 
 apcsaChatbotsCountWordsHard
apcsaChatbotsCountWordsHard 
Word detection problems
 apcsaChatbotsFirstWord
apcsaChatbotsFirstWord 
 apcsaChatbotsWordExists
apcsaChatbotsWordExists 
 apcsaChatbotsPunctuatedWord
apcsaChatbotsPunctuatedWord 
 apcsaChatbotsLastWordHard
apcsaChatbotsLastWordHard 
 apcsaChatbotsRearrangeStartsIAm
apcsaChatbotsRearrangeStartsIAm 
 apcsaChatbotsRearrangeContainsIAm
apcsaChatbotsRearrangeContainsIAm 
 apcsaChatbotsRearrangeContainsIYou
apcsaChatbotsRearrangeContainsIYou 
Authoring docs
Copyright Nick Parlante 2017 - privacy